微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS IAM策略基于父级Cloudformation限制对资源的访问

如何解决AWS IAM策略基于父级Cloudformation限制对资源的访问

在我们的AWS账户下,我们有多种产品,每种产品都是自己的Cloudformation Stacks。整个产品堆栈是Dynamo / Serverless / Cognito。

最近,我们的一位客户吸引了外部承包商来开发特定产品。

有没有办法限制他们在我们帐户内对以Cloudformation部署的所有资源的访问权限?


我已经尝试过以下操作,并在cloudformation下使用环境(产品/主产品)和产品标签标记资源:

{
  "PolicyDocument": {
    "Version": "2012-10-17","Statement": [
      {
        "Effect": "Allow","Action": "*","Resource": "*","Condition": {
          "ForAllValues:StringEquals": {
            "aws:ResourceTag/Product": "productName","aws:ResourceTag/Environment": "productEnviroment"
          }
        }
      }
    ]
  }

这不起作用,似乎可以访问所有内容。扭转这种状况并拒绝所有已加标签内容,然后直接应用特定操作似乎也不起作用。

解决方法

您可以创建组织单位并向其添加帐户,这些帐户只能访问这些 OU 内的资源。它是分层的,因此您的根帐户可以访问所有内容,依此类推。

组织 -> OU1 -> OU2 -> OU3

不幸的是,没有 CloudFormation for Organizations,而是 CLI is pretty straightforward

如果你想自动化这个,我会做一些类似的事情:

  1. 在根/父 OU 下创建组织单位
  2. 创建帐户(在 root 中创建)
  3. 将帐户从根移动到 OU
  4. 为账户生成访问密钥/创建 IAM 并生成访问密钥(不幸的是,这是一项“一次性”手动任务)
  5. 使用 AWS 凭证部署您希望保留在该组织单位内的 CloudFormation 堆栈

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。