将sts:SourceIdentity添加到CDK中的AssumeRolePolicyDocument



我正在使用CDK创建一个角色,我需要将sts:SetSourceIdentity添加到AssumeRolePolicyDocument中。

我的代码当前如下:

new Role(this, 'MyRole', {
assumedBy: new AccountPrincipal(Stack.of(this).account),
...
});

这导致了一个看起来像这样的AssuumeRolePolicyDocument:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::0123456789012:root"
},
"Action": "sts:AssumeRole"
}
]
}

我需要它看起来像这样:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::0123456789012:root"
},
"Action": ["sts:AssumeRole", "sts:SetSourceIdentity"]
}
]
}

从上面的CDK代码生成CloudFormation的结果如下:

"MyRoleCF2E104D": {
"Type": "AWS::IAM::Role",
"Properties": {
"AssumeRolePolicyDocument": {
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"AWS": {
"Fn::Join": [
"",
[
"arn:",
{
"Ref": "AWS::Partition"
},
":iam::0123456789012:root"
]
]
}
}
}
],
"Version": "2012-10-17"
},
...
},

我不知道如何将sts:SetSourceIdentity添加到CloudFormation中的Action中。有什么想法吗?我需要弹出到L1构造吗?

addStatements将新操作添加到角色的假定角色策略文档中:

role.assumeRolePolicy?.addStatements(
new iam.PolicyStatement({
actions: ['sts:SetSourceIdentity'],
principals: [new iam.AccountPrincipal(this.account)],
})
);

相关内容

  • 没有找到相关文章

最新更新