【问题标题】:CloudFormation - IAM - Access Control with TagsCloudFormation - IAM - 带标签的访问控制
【发布时间】:2020-05-22 17:57:16
【问题描述】:

我需要创建一个可供开发人员使用的角色。我们只有一个用于开发和生产的帐户(不推荐,我知道)。创建的资源用 dev 或 prod 标记以识别环境。要求是开发人员可以在两种环境中都拥有 ReadOnlyAccess,但只能对标有 'dev'

的资源拥有完全访问权限

所以如果一个开发者想要创建一个资源,他应该用 dev 来标记它。此外,他可以修改其他用户创建的其他资源,这些资源也带有 dev 标记。在 AWS 文档中,我使用下面的 sn-p 创建了一个 CloudFormation 模板,但我注意到只允许 ReadOnlyAccess。开发者无法创建带有“dev”标签的资源,也无法修改已经带有“dev”标签的资源。任何指针都会有所帮助。

我想使用 PowerUseAccess 这是一个托管策略,但不知道如何在托管策略之上提供条件。

RoleDeveloper:
Type: AWS::IAM::Role
Properties:
  RoleName: DeveloperRole
  AssumeRolePolicyDocument:
    Version: 2012-10-17
    Statement: 
      - Effect: Allow
        Principal:
          AWS: !Sub arn:aws:iam::${UserAccountId}:root
        Action:
          - 'sts:AssumeRole'
  Path: /      
  Policies:
    - PolicyName: FullDeveloperAccessWithDevTag
      PolicyDocument:
        Version: 2012-10-17
        Statement: 
          - Effect: Allow
            Action: "*"
            Resource: "*"
            Condition:
              StringEquals:
                aws:ResourceTag/env:
                  - dev
  ManagedPolicyArns:
    - arn:aws:iam::aws:policy/ReadOnlyAccess

【问题讨论】:

  • 条件很可能只适用于某些动作,因为并非所有动作都支持条件。你能告诉我们一个他们试图做什么但被拒绝的例子吗?另外,请告诉我们他们是如何尝试执行操作(控制台、AWS CLI 命令、API 调用)的,以便我们可以尝试重现这种情况。
  • @JohnRotenstein 你的意思是Action 的通配符不适用于条件吗?例如,我可以说 DynamoDB。开发人员应该毫无困难地创建一个带有标签 env: dev 的表或修改带有该标签的现有表。但事实并非如此。访问是使用控制台。同样,我对Action 使用了通配符,因为我应该根据开发人员的标签限制对所有资源的访问。

标签: amazon-web-services amazon-cloudformation amazon-iam


【解决方案1】:

通配符不是问题。相反,问题在于并非每个 API 调用都会遵守 Condition。

例如,s3:ListBucket 不将标记作为条件。 dynamodb:ListTables 也没有。

此外,虽然某些命令(我称之为操作)会接受条件,但它们不一定会接受标签作为条件。

这里是显示 DynamoDB 条件的文档:DynamoDB API Permissions: Actions, Resources, and Conditions Reference - Amazon DynamoDB。我看不到任何对标签的引用。

但是,标签可用作 Amazon EC2 的条件键:Actions, Resources, and Condition Keys for Amazon EC2 - AWS Identity and Access Management

因此,一些服务和 API 调用根本无法被标签限制。

【讨论】:

  • 谢谢。这是有道理的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-07
  • 2012-06-14
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-06
相关资源
最近更新 更多