限制IAM CreateRole以禁止信任外部AWS账户的信任策略

0

【以下的问题经过翻译处理】 虽然一个组织可以编写一个策略来禁止大多数用户执行CreateRole操作。然而,这种限制阻碍了快速开发,因为它同时也阻止了用户使用控制台向导的为服务创建Role的功能。

我的目标是允许用户使用控制台向导创建IAM角色,但限制他们创建带有外部AWS帐户号码或不同帐户的IAM用户/角色的信任策略的角色。信任策略应该只允许当前AWS帐户内的资源。(我还应该考虑其他别的限制吗?)

我已经想出了一种使用aws:PrincipalARN条件键上的StringNotLike条件运算符的IAM策略。以下是我想要的IAM策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iam:CreateRole",
      "Resource": "*",
      "Condition": {
        "StringNotLike": {
          "aws:PrincipalARN": "arn:aws:iam::*:root"
        }
      }
    }
  ]
}

然后我会在AWS Organizations中添加一个SCP,仅允许在开发帐户中执行CreateRole(带有上述限制)。

我担心这种方法可能不能涵盖所有情况,特别是当信任策略包括来自不同帐户的AWS IAM用户ARN时。这是实现我的目标的最佳方法,还是有限制CreateRole操作可针对包含当前AWS帐户资源的信任策略的更好方法?

1 回答
0

【以下的回答经过翻译处理】 服务控制策略(SCP)无法用于限制信任策略或任何其他类型的基于资源的策略的内容。目前,AWS没有原生的方法来基于信任策略的内容来阻止用户创建角色。请参阅下面的链接了解有关基于身份的策略和基于资源的策略之间区别的更多信息。

https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html

用户通常会使用部署流水线来对策略进行自定义安全检查,该流水线可以执行自定义的安全检查以及使用IAM访问分析器策略验证器对策略进行测试。部署这样的流水线后,需要强制用户只能够通过流水线对策略进行修改而非直接对策略进行更改。

https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则