【问题标题】:How to set policy for IAM user group?如何为 IAM 用户组设置策略?
【发布时间】:2020-10-22 17:10:57
【问题描述】:

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

【问题讨论】:

    标签: amazon-web-services amazon-iam


    【解决方案1】:

    很遗憾,您不能这样做

    "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 权限。这样他们就可以担任该角色,并且该角色可以用作您的政策中的一项原则。

    【讨论】:

      【解决方案2】:

      IAM 组不是委托人,因此很遗憾,您不能在您的策略中使用这些作为参考

      您仅限于 IAM 用户IAM 角色

      AWS 主体必须是调用资源(尝试通过 API 访问此服务的资源),IAM 组构造是应用于用户以改进策略管理的组织单位。

      唯一的建议(根据任何其他资源策略)是为该组创建一个角色,该组中的任何用户都可以担任该角色。然后,您会将主体更新为该角色,而不是列出所有组。如果这对您的解决方案不起作用,那么您需要列出所有 IAM 用户。

      如果您创建了一个角色,您可以通过via the consolecommand line 甚至通过 SDK 代入该角色

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-17
        • 1970-01-01
        • 2020-12-15
        • 2012-12-24
        • 2020-07-21
        • 1970-01-01
        • 2021-09-15
        相关资源
        最近更新 更多