Amazon web services CloudFormation-IAM-带标签的访问控制
我需要创建一个可供开发人员使用的角色。我们只有一个Dev和Prod帐户(我知道不推荐)。创建的资源用dev或prod标记,以标识环境。要求开发人员可以在两种环境上都具有ReadOnlyAccess,但只能对标记为“dev”的资源进行完全访问 因此,如果开发人员想要创建一个资源,他应该用dev标记它。此外,他可以修改其他用户创建的其他资源,这些资源也用dev标记。从AWS文档中,我创建了一个CloudFormation模板,其中包含以下代码段,但我注意到只允许ReadOnlyAccess。开发人员无法创建带有“dev”标记的资源,也无法修改已具有“dev”标记的资源。任何指示都会有帮助 我想使用PowerUseAccess,这是一个托管策略,但不知道如何在托管策略之上提供条件Amazon web services CloudFormation-IAM-带标签的访问控制,amazon-web-services,amazon-cloudformation,amazon-iam,Amazon Web Services,Amazon Cloudformation,Amazon Iam,我需要创建一个可供开发人员使用的角色。我们只有一个Dev和Prod帐户(我知道不推荐)。创建的资源用dev或prod标记,以标识环境。要求开发人员可以在两种环境上都具有ReadOnlyAccess,但只能对标记为“dev”的资源进行完全访问 因此,如果开发人员想要创建一个资源,他应该用dev标记它。此外,他可以修改其他用户创建的其他资源,这些资源也用dev标记。从AWS文档中,我创建了一个CloudFormation模板,其中包含以下代码段,但我注意到只允许ReadOnlyAccess。开发人员
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
通配符不是问题所在。相反,问题是不是每个API调用都会遵守该条件 例如,
s3:ListBucket
不将标记作为条件。dynamodb:ListTables也没有
此外,虽然一些命令(我称之为操作)将接受条件,但它们不一定接受标记作为条件
以下是显示DynamoDB的条件的文档:。我看不到任何对标签的引用
但是,标记可用作Amazon EC2的条件键:
因此,有些服务和API调用根本不受标记的限制。很可能该条件仅适用于某些操作,因为并非所有操作都支持该条件。你能告诉我们一个他们试图做什么但被拒绝的例子吗?另外,请告诉我们他们如何尝试执行该操作(控制台、AWS CLI命令、API调用),以便我们可以尝试重现这种情况。@JohnRotenstein您的意思是操作的通配符
不适用于条件吗?举个例子,我可以说DynamoDB。开发人员应该使用标记env:dev创建一个表,或者使用该标记轻松地修改现有表。但事实并非如此。访问是使用控制台进行的。同样,我在操作中使用了通配符,因为我应该根据开发人员的标记限制他们对所有资源的访问。谢谢。这是有道理的。