AWS CDK如何在IAM策略中包含主体?

尼兰詹

嗨,我正在研究AWS CDK。我正在尝试创建基于资源的策略。以下是我的云形成模板。

MWSECRRepository:
    Type: AWS::ECR::Repository
    Properties:
      RepositoryName: "location/location-service"
      RepositoryPolicyText:
        Version: "2012-10-17"
        Statement:
          - Sid: CurrentAccountPush
            Effect: Allow
            Principal:
              AWS:
                - 'arn:aws:iam::1234:root'  # dev
                - 'arn:aws:iam::1234:root'  # nonprod
                - 'arn:aws:iam::1234:root'  # prod
            Action:
              - 'ecr:GetDownloadUrlForLayer'
              - 'ecr:PutImage'
              - 'ecr:InitiateLayerUpload'
              - 'ecr:UploadLayerPart'
              - 'ecr:CompleteLayerUpload'

下面,我试图使用CDK创建相同的内容。

 ECRRepository = ecr.Repository(self, id = "ECR", repository_name = "location/location-service");
        ECRRepository.add_to_resource_policy(iam.PolicyStatement(
            effect=iam.Effect.ALLOW,
            actions=["ecr:GetDownloadUrlForLayer","ecr:PutImage","ecr:InitiateLayerUpload","ecr:UploadLayerPart","ecr:CompleteLayerUpload"],
            principals=["arn:aws:iam::123:root","arn:aws:iam::123:root","arn:aws:iam::123:root"]
        ));


        ECRRepository.add_to_resource_policy(iam.PolicyStatement(
            effect=iam.Effect.ALLOW,
            #principals=["arn:aws:iam::123:root","arn:aws:iam::123:root","arn:aws:iam::123:root"]
            actions=["ecr:GetDownloadUrlForLayer","ecr:BatchGetImage","ecr:BatchCheckLayerAvailability"]
        ));

        ECRRepository.add_lifecycle_rule(description="Image retention",  max_image_count=100, rule_priority=1);

这导致以下错误

错误:预期的对象引用,得到了“ arn:aws:iam :: 123:root”

有人可以帮助我使用python编写正确的语法吗?任何帮助,将不胜感激。谢谢

安慰

principals需要是的列表,IPrincipal而不是strings

ECRRepository.add_to_resource_policy(iam.PolicyStatement(
            effect=iam.Effect.ALLOW,
            actions=["ecr:GetDownloadUrlForLayer","ecr:PutImage","ecr:InitiateLayerUpload","ecr:UploadLayerPart","ecr:CompleteLayerUpload"],
            principals=[iam.ArnPrincipal("aws:iam::1234:root")]
        ));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在VPC中为AWS Lambda设置IAM策略以解决错误“您无权执行:CreateNetworkInterface”。

来自分类Dev

使用CDK创建自定义AWS IAM策略

来自分类Dev

如何在 AWS 中附加新策略?

来自分类Dev

AWS服务主体在策略文档中是否隐式包含帐户范围?

来自分类Dev

AWS IAM策略中的可变资源名称

来自分类Dev

如何在AWS CDK中创建侦听器规则?

来自分类Dev

如何在CDK(AWS)中获取api密钥的值

来自分类Dev

如何将AWS CDK中的``any''传递给存储桶策略

来自分类Dev

如何在Terraform中的AWS策略内插入变量

来自分类Dev

无法使用python在AWS CDK中写入策略文档

来自分类Dev

哪种AWS IAM主体以AROA开头?

来自分类Dev

AWS CDK-停止生成策略

来自分类Dev

AWS CDK-角色和策略创建

来自分类Dev

适用于SQS的AWS IAM策略

来自分类Dev

带有MFA的AWS PowerUser(IAM策略)

来自分类Dev

AWS IAM策略权限冲突问题

来自分类Dev

多个存储桶的 AWS IAM 策略

来自分类Dev

AWS IAM 策略 - 限制 VPC 租赁

来自分类Dev

如何在AWS CDK创建的Python Lambda函数中安装外部模块?

来自分类Dev

如何在AWS CDK中的API Gateway部署中使用现有阶段?

来自分类Dev

如何在AWS CDK中引用生成的elasticsearch.CfnDomain域名?

来自分类Dev

如何在AWS CDK中引用生成的elasticsearch.CfnDomain域名?

来自分类Dev

在AWS CDK中请求验证

来自分类Dev

在AWS CDK中请求验证

来自分类Dev

如何在AWS CDK中指定源安全组ID?

来自分类Dev

如何在AWS CDK中导入现有的VPC?

来自分类Dev

AWS CDK如何在TypeScript中标记资源?

来自分类Dev

如何在AWS CDK中使用内在函数!sub方法?

来自分类Dev

AWS CDK如何在C#中标记资源?

Related 相关文章

热门标签

归档