2

サービスよりも複雑なものにロール ポリシー ドキュメントを継承する方法を知りたい...

これは私が今まで見つけたもので、おそらくこれでうまくいくでしょう:

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で2つのロールを追加したい-別のプリンシパルを追加する方法がわかりません...

4

2 に答える 2