【发布时间】:2018-10-18 18:41:23
【问题描述】:
我想知道如何将代入角色策略文档设置为比服务更复杂的内容...
这是我到目前为止发现的,也许这会起作用:
this.TestRole = new iam.Role(this, "Test", {
assumedBy: new iam.ServicePrincipal("ec2.amazonaws.com"),
roleName: "TestRole"
})
但我想添加这样的内容:
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sts:AssumeRole"
],
"Principal": {
"AWS": [
"arn:aws:iam::account1:role/Role1",
"arn:aws:iam::account2:role/Role2"
]
}
},
{
"Effect": "Allow",
"Action": [
"sts:AssumeRoleWithSAML"
],
"Principal": {
"Federated": {
some sub and so on
}
},
"Condition": {
"StringEquals": {
"SAML:aud": some saml stuff
}
}
}
]
},
我不知道如何做到这一点...你能帮帮我吗?
好的,可以这样做:
this.TestRole = new iam.Role(this, "Test", {
assumedBy: new iam.FederatedPrincipal(new cdk.FnSub("arn:aws:iam::${AWS::AccountId}:saml-provider/SAMLIDP"), {
"StringEquals": {
"SAML:aud": "https://signin.aws.amazon.com/saml"
}
}, "sts:AssumeRoleWithSAML"),
roleName: parent.getApplicationName().charAt(0).toUpperCase() + parent.getApplicationName().slice(1)
})
这很简单 :-/ 但现在我想用动作 sts:AssumeRole 添加这两个角色 - 我不知道如何添加另一个主体...
【问题讨论】:
-
不幸的是,目前这是不可能的。请为这个 GitHub 问题投票:github.com/awslabs/aws-cdk/issues/1201
标签: amazon-web-services roles amazon-iam aws-cdk