如何为IAM用户组设置策略?

时间:2020-07-02 06:57:20

标签: amazon-web-services amazon-iam

我是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": "*"
        }
    ]
}

2 个答案:

答案 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来承担角色