我正在寻找描述如何跨AWS组织层次结构的各个子单元中的帐户授予对ECR存储库的拉取访问的示例代码。理想情况下,我希望能列出一个组织单位。如果有必要,我可以允许单独列出帐户。
到目前为止,我已经将下面的Typescript部署到ECR存储库的记账中:
const ecr_access_user = new iam.User(
this,
"build-docker-access" + stageSuffix,
{
userName: "build-docker-access" + stageSuffix,
}
);
repository.grantPull(ecr_access_user)
现在,如何设置将在AWS组织单元内授予访问权限的策略?
为存储库创建资源策略,通过OU匹配条件键向您想要的OU授予权限。
repository.addToResourcePolicy(
new iam.PolicyStatement({
principals: [new iam.AnyPrincipal()], // or specify specific accounts
actions: ["ecr:*"], // modify as needed
conditions: {
"ForAnyValue:StringLike": {
"aws:PrincipalOrgPaths": ["o-my-organization/*/ou-abc/*"], // modify as needed
},
},
})
);
无论主体想从回购中提取什么,都需要单独授予ecr:GetAuthorizationToken
权限(因为该权限不属于任何特定的资源)。