在AWS CDK Python中,可以使用iam.CfnRole类创建IAM角色,并指定信任关系。可以通过多次调用CfnRole.add_to_policy()方法并传递不同的信任关系向角色添加多个信任关系声明。
以下是示例代码,演示如何创建一个角色,并向其添加多个信任关系声明:
from aws_cdk import ( aws_iam as iam, core )
class MyStack(core.Stack): def init(self, scope: core.Construct, id: str, **kwargs) -> None: super().init(scope, id, **kwargs)
role = iam.CfnRole(
self, 'MyRole',
role_name='my-role',
assume_role_policy_document={
"Version": "2012-10-17",
"Statement": []
}
)
# 添加第一个信任关系声明
role.add_to_policy(
iam.PolicyStatement(
effect=iam.Effect.ALLOW,
actions=['sts:AssumeRole'],
principals=[iam.ServicePrincipal('ec2.amazonaws.com')]
)
)
# 添加第二个信任关系声明
role.add_to_policy(
iam.PolicyStatement(
effect=iam.Effect.ALLOW,
actions=['sts:AssumeRole'],
principals=[
iam.ServicePrincipal('lambda.amazonaws.com'),
iam.ServicePrincipal('events.amazonaws.com')
]
)
)
# 添加更多信任关系声明...
本示例创建一个名为“my-role”的角色,并向其添加两个信任关系声明:一个允许EC2扮演角色,另一个允许Lambda和事件服务扮演角色。可以根据需要添加更多信任关系声明。