protected crossAccountECRPolicy()

in src/aspect.ts [47:72]


  protected crossAccountECRPolicy(stack: Stack, repoName: string): Policy {
    const policy = ECRRepositoryAspect._repoPolicies.get(repoName);
    if (policy) { return policy; }

    const newPolicy = new Policy(stack, `CrossAccountECR-${repoName}`, {
      statements: [
        new PolicyStatement({
          actions: [
            'ecr:BatchCheckLayerAvailability',
            'ecr:GetDownloadUrlForLayer',
            'ecr:BatchGetImage',
          ],
          resources: [
            Arn.format({
              account: this.account,
              service: 'ecr',
              resource: 'repository',
              resourceName: repoName,
            }, stack),
          ],
        }),
      ],
    });
    ECRRepositoryAspect._repoPolicies.set(repoName, newPolicy);
    return newPolicy;
  }