首页 > 解决方案 > 使用 CDK 创建自定义 AWS IAM 策略

问题描述

根据文档:https ://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Policy.html

我可以创建自己的策略并附加到角色,但它不是创建新策略,而是作为内联策略附加到角色。我想创建一个带有 arn 的自定义策略,以便我可以附加到我想要的其他角色

我尝试过的事情

new Policy(..)
new iam.PolicyStatement()
addStatements()
attachToRole()

请让我知道如何创建自定义托管策略

标签: amazon-web-servicesamazon-cloudformationamazon-iamaws-cdk

解决方案


我应该在上一个问题中更具体,应该说使用ManagedPolicy。这是您正在寻找的解决方案:

 const role = new Role(this, 'MyRole', {
   assumedBy: new ServicePrincipal('ec2.amazonaws.com'),
 });

 const policy = new ManagedPolicy(this, "MyManagedPolicy", {
   statements: [
     new PolicyStatement({
       effect: Effect.ALLOW,
       actions: ["s3:*"],
       resources: ["*"]
     })
   ],
   roles: [role]
 });

 // Either use roles property inside ManagedPolicy or use attachToRole below,
 // Both will yield the same result
 // Creates a managed policy and then attaches the policy to role

 // policy.attachToRole(role);

推荐阅读