是否从另一个AWS帐户中运行的lambda更新SSM参数



我在AWS帐户1中有一个lambda。

我在AWS帐户2中有一个SSM参数。

我想在lambda中写这样的代码:

const ssm = new AWS.SSM({apiVersion: "2014-11-06"});
function updateSsmParamInOtherAwsAccount(newSsmValue) {
const params = {
Name: "ssm-parameter-name",
Value: newSsmValue,
Overwrite: true,
Type: "String",
};
ssm.putParameter(params, function (err) {
if (err) {
console.error(
err,
err.stack
);
} else {
console.log(
`Successfully set SSM param`
);
}
});
}

我了解如何使用IAM授予此权限。

不了解的是如何配置aws javascript sdk以指向其他aws帐户

正如上面的例子中所写的那样,它将在lambda运行的同一个AWS帐户中更新SSM参数。似乎没有任何环境变量或配置选项允许这样做。

有人知道如何连接这里的点吗?

正如您所写的,由于您了解跨帐户IAM角色的使用,我猜所有角色和权限都设置正确。

所以,对于所有的SDK,您必须做的是一样的,而不仅仅是JavaScript。也就是说,在lambda函数中,您必须AWS Account 2显式承担IAM角色。在JS中,您必须调用assumeRole,并从第二个帐户为其提供IAM角色。

assumeRole调用将返回临时AWS凭据,您可以使用该凭据访问第二个帐户。在这个SO的答案是一个很好的例子,你可以在JS中做到这一点。另一个特定于lambda(但对于python(的例子在这里。

最新更新