Amazon cloudformation 如何定义可由其他ECR存储库定义引用的Cloudformation ECR RepositoryPolicyText?
我试图创建一个RepositoryPolicyText,它可以被cloudformation模板中定义的其他ecr存储库引用。大概是这样的:Amazon cloudformation 如何定义可由其他ECR存储库定义引用的Cloudformation ECR RepositoryPolicyText?,amazon-cloudformation,amazon-ecr,Amazon Cloudformation,Amazon Ecr,我试图创建一个RepositoryPolicyText,它可以被cloudformation模板中定义的其他ecr存储库引用。大概是这样的: MyRepository: Type: AWS::ECR::Repository Properties: RepositoryName: "test-repository" RepositoryPolicyText: !Ref MyRepositoryPolicy 我试图加入一个托管策略,但它不允许在其中创
MyRepository:
Type: AWS::ECR::Repository
Properties:
RepositoryName: "test-repository"
RepositoryPolicyText: !Ref MyRepositoryPolicy
我试图加入一个托管策略,但它不允许在其中创建主体
有没有其他方法可以让RepositoryPolicyText通过引用工作
我可以编写一次并在其他存储库定义中引用,而不是复制RepositoryPolicyText。您可以使用带有默认字符串的,然后可以跨资源共享此参数
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
抱歉,我看不出它是如何工作的,因为参数部分中没有ECR类型。也许是绳子?你认为它会如何工作?你有什么例子可以举吗?谢谢@Kenji在答案中添加了一个例子现在我明白了!非常感谢。顺便说一句,我做了一个变通方法,保持策略文本不变,但使用Ansible和循环创建了cloudformation,因此,现在我可以循环使用ECR存储库的名称,并使用相同的CF模板创建它们。