如何限制 IAM 用户访问(列出)特定角色和 CF 堆栈?



我已经使用root账户创建了多个服务角色和CF堆栈,我将创建一个IAM用户,我不想列出所有这些角色和CF堆栈。我只想显示一些特定的角色和 CF 堆栈。 你能告诉我我该怎么做吗?如果您共享示例策略,那就太好了。

无法在控制台中仅显示所有 IAM 角色的子集。限制iam:ListRoles调用的唯一方法是使用PathPrefix参数(请参阅 https://docs.aws.amazon.com/IAM/latest/UserGuide/list_identityandaccessmanagement.html(。但是,IAM 控制台发出iam:ListRoles请求,而不指定PathPrefix参数。您仍然可以使用 AWS CLI 仅请求一部分 IAM 角色,如下所示:

aws iam list-roles --path-prefix "/somepath"

您可以允许用户列出路径以/somepath开头的 IAM 角色,如下所示:

---
AWSTemplateFormatVersion: '2010-09-09'
Resources:
User:
Type: AWS::IAM::User
Properties:
Path: "/"
Policies:
- PolicyName: IamAccess
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- 'iam:ListRoles'
Resource: !Sub "arn:aws:iam::${AWS::AccountId}:role/somepath*"

至于只列出所有CloudFormation堆栈的子集,这是不可能的。ListStacks调用不允许您筛选要列出的堆栈。请参阅 https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscloudformation.html 。只需将以下代码片段添加到上面的代码中,即可允许用户列出所有 CloudFormation 堆栈:

- PolicyName: CloudFormationAccess
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- 'cloudformation:ListStacks'
Resource: '*'

请注意,列出 CloudFormation 堆栈并不隐式提供列出这些堆栈的资源或输出的权限。换句话说,用户可以列出所有堆栈,但无法查看这些堆栈的内容。

相关内容

  • 没有找到相关文章

最新更新