我在AWS帐户1里有个小路标。
我在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为此授予权限。
I 不理解的是如何将 aws javascript sdk 配置为指向其他AWS帐户.
如上面示例所写,它将更新lambda运行的同一个AWS帐户中的SSM param。似乎没有任何环境变量或配置选项允许这样做。
有人知道怎么把这里的点连起来吗?
发布于 2020-11-20 05:58:42
正如您所写的,由于您理解了跨帐户IAM角色的使用,所以我猜所有角色和权限都是正确设置的。
所以,对于所有的SDK,您必须做的都是一样的,而不仅仅是JavaScript。也就是说,在lambda函数中,您必须从显式地承担来自AWS Account 2
的IAM角色。在JS中,您必须调用assumeRole并从第二个帐户为它提供IAM角色。
assumeRole
调用将返回临时AWS凭据,您可以使用它访问第二个帐户。在这个例子中,所以回答是一个很好的例子,您可以在JS中这样做。另一个特定于lambda (但对于python)的示例是这里。
https://stackoverflow.com/questions/64924077
复制相似问题