如何定义可被其他 ECR 存储库定义引用的 Cloudformation ECR RepositoryPolicyText?
How to define a Cloudformation ECR RepositoryPolicyText that can be referenced by other ECR repository definitions?
我试图创建一个 RepositoryPolicyText,它可以被 cloudformation 模板中定义的其他 ecr 存储库引用。像这样:
MyRepository:
Type: AWS::ECR::Repository
Properties:
RepositoryName: "test-repository"
RepositoryPolicyText: !Ref MyRepositoryPolicy
我尝试放入托管策略,但它不允许在其中创建委托人。
有没有其他方法可以让 RepositoryPolicyText 通过引用工作?
我可以编写一次并在其他存储库定义中引用,而不是复制 RepositoryPolicyText。
您可以使用带有默认字符串的CloudFormation parameter,然后该参数可以跨资源共享。
Parameters:
repoPolicy:
Type: String
Default: '{"Statement":[ {"Sid" : "a", "Effect" : "Allow", "Principal" : "*", "Action" : "ecr:*" } ]}'
Resources:
repoA:
Type: 'AWS::ECR::Repository'
Properties:
RepositoryName: cfnrepoa
RepositoryPolicyText: !Ref repoPolicy
repoB:
Type: 'AWS::ECR::Repository'
Properties:
RepositoryName: cfnrepob
RepositoryPolicyText: !Ref repoPolicy
我试图创建一个 RepositoryPolicyText,它可以被 cloudformation 模板中定义的其他 ecr 存储库引用。像这样:
MyRepository:
Type: AWS::ECR::Repository
Properties:
RepositoryName: "test-repository"
RepositoryPolicyText: !Ref MyRepositoryPolicy
我尝试放入托管策略,但它不允许在其中创建委托人。
有没有其他方法可以让 RepositoryPolicyText 通过引用工作?
我可以编写一次并在其他存储库定义中引用,而不是复制 RepositoryPolicyText。
您可以使用带有默认字符串的CloudFormation parameter,然后该参数可以跨资源共享。
Parameters:
repoPolicy:
Type: String
Default: '{"Statement":[ {"Sid" : "a", "Effect" : "Allow", "Principal" : "*", "Action" : "ecr:*" } ]}'
Resources:
repoA:
Type: 'AWS::ECR::Repository'
Properties:
RepositoryName: cfnrepoa
RepositoryPolicyText: !Ref repoPolicy
repoB:
Type: 'AWS::ECR::Repository'
Properties:
RepositoryName: cfnrepob
RepositoryPolicyText: !Ref repoPolicy