Amazon cloudformation 如何定义可由其他ECR存储库定义引用的Cloudformation ECR RepositoryPolicyText?

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 我试图加入一个托管策略,但它不允许在其中创

我试图创建一个RepositoryPolicyText,它可以被cloudformation模板中定义的其他ecr存储库引用。大概是这样的:

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模板创建它们。