deekayen.iam_access_simulation
AWS IAM访问模拟
模拟IAM用户和角色对任何ARN执行的各种IAM操作的访问。这可以告诉你哪些用户和角色可以访问你的S3存储桶或KMS密钥,以便审计员询问时使用。
该工具将收集你AWS账户中的所有用户和角色,然后针对你在resources_to_test
变量中定义的ARN测试所提供的操作。如果你只想测试用户或角色,可以通过使用分配给任务的user
或role
标签来省略不需要的部分。
使用AWS CLI模拟主体策略功能测试IAM用户和角色的访问。
aws iam simulate-principal-policy \
--policy-source-arn <用户/角色arn> \
--resource-arns <资源arn> \
--action-names <操作>
角色变量
resources_to_test: []
示例剧本
---
- hosts: localhost
connection: local
gather_facts: no
vars:
resources_to_test:
- action: s3:GetObject
resource: arn:aws:s3:::deekayen-123456789000-secret-bucket
- action: kms:Decrypt
resource: arn:aws:kms:us-east-1:123456789000:key/1234abab-1e2c-3a4b-9ba8-1234567890ab
roles:
- deekayen.iam_access_simulation
模拟的结果将在剧本运行结束时打印到控制台。
TASK [iam_access_simulation : 打印模拟结果.] **********************
ok: [localhost] => {
"msg": [
"用户deekayen被允许在arn:aws:s3:::deekayen-123456789000-secret-bucket上执行s3:GetObject",
"角色ec2-instances被允许在arn:aws:s3:::deekayen-123456789000-secret-bucket上执行s3:GetObject",
"用户deekayen被允许在arn:aws:kms:us-east-1:123456789000:key/1234abab-1e2c-3a4b-9ba8-1234567890ab上执行kms:Decrypt",
"角色ec2-instances被允许在arn:aws:kms:us-east-1:123456789000:key/1234abab-1e2c-3a4b-9ba8-1234567890ab上执行kms:Decrypt"
]
}
[
PLAY RECAP *********************************************************************
localhost : ok=327 changed=0 unreachable=0 failed=0 skipped=324 rescued=0 ignored=0
剧本运行耗时0天,0小时,3分钟,14秒
要求
控制机器需要boto和AWS CLI。
依赖
collections:
- amazon.aws
- community.general
许可证
BSD-3-Clause