我是AWS的新手。我有一个AWS CodeArtifact存储库,我想使用该存储库的IAM用户组来创建存储库策略。
使用IAM用户的“我的存储库策略”如下所示。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::****:user/*********"
},
"Action": [
"codeartifact:DescribePackageVersion",
"codeartifact:DescribeRepository",
"codeartifact:GetPackageVersionReadme",
"codeartifact:GetRepositoryEndpoint",
"codeartifact:ListPackages",
"codeartifact:ListPackageVersions",
"codeartifact:ListPackageVersionAssets",
"codeartifact:ListPackageVersionDependencies",
"codeartifact:ReadFromRepository"
],
"Resource": "*"
}
]
}
如何为用户组执行此操作?
我试图像对IAM用户进行分组一样,但是似乎出现了一些错误。 看起来像这样
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::*****:group/*********"
},
"Action": [
"codeartifact:DescribePackageVersion",
"codeartifact:DescribeRepository",
"codeartifact:GetPackageVersionReadme",
"codeartifact:GetRepositoryEndpoint",
"codeartifact:ListPackages",
"codeartifact:ListPackageVersions",
"codeartifact:ListPackageVersionAssets",
"codeartifact:ListPackageVersionDependencies",
"codeartifact:ReadFromRepository"
],
"Resource": "*"
}
]
}
答案 0 :(得分:0)
很遗憾,您不能这样做:
"Principal": {
"AWS": "arn:aws:iam::*****:group/*********"
},
IAM组不能用作原则。通常,当您具有AWS
类型原则时,您仅限于 IAM角色或 IAM用户。
一般来说(docs):
您可以在策略中指定以下任何原则:
AWS account and root user
IAM users
Federated users (using web identity or SAML federation)
IAM roles
Assumed-role sessions
AWS services
Anonymous users (not recommended)
因此,您的AWS CodeArtifact存储库的权限可以与 IAM角色相关联。您的小组成员将获得sts:AssumeRole
的角色许可。这样,他们就可以担当角色,并且可以将角色用作您策略中的原则。
答案 1 :(得分:0)
IAM组不是负责人,因此很遗憾,您不能在政策中将其用作参考。
您只能使用 IAM用户或 IAM角色。
AWS主体必须是呼叫资源(尝试通过API来访问此服务的资源),IAM组构造是组织单位,可应用于用户以改善策略管理。
唯一的建议(根据任何其他资源策略)将是为此组创建角色,该角色可由该组中的任何用户承担。然后,您将主体更新为该角色,而不是列出所有组。如果这不适用于您的解决方案,则需要列出所有IAM用户。
如果创建角色,则可以via the console,通过command line甚至通过SDK来承担角色