运行 已承担角色的 ec2 实例上的 ecr 命令需要哪些 iam 策略?

what iam policies are requried to run ecr commands on ec2 instance that has assumed a role?

我有一个小的 jenkins 实例,它使用 terraform 来部署一些东西,比如 ECR 尝试应用更改时出现此错误

error creating ECR Public repository: AccessDeniedException: 
User: arn:aws:sts::1234567890:assumed-role/jenkins_role/i-1234567890 is not authorized to perform: ecr-public:CreateRepository on resource: arn:aws:ecr-public::1234567890:repository/test-repo

我原以为 AmazonEC2ContainerRegistryFullAccess 就足够了,但事实并非如此。当我添加 AdministratorAccess 时,它起作用了。那么为什么会这样呢?

AmazonEC2ContainerRegistryFullAccess 仅适用于 私有 ECR。您正在尝试使用 ecr-public。这意味着您必须创建自己的策略,允许 ecr-public:CreateRepository(而不是 ecr:CreateRepository)。