deekayen.iam_access_simulation

AWS IAM访问模拟

CI

模拟IAM用户和角色对任何ARN执行的各种IAM操作的访问。这可以告诉你哪些用户和角色可以访问你的S3存储桶或KMS密钥,以便审计员询问时使用。

该工具将收集你AWS账户中的所有用户和角色,然后针对你在resources_to_test变量中定义的ARN测试所提供的操作。如果你只想测试用户或角色,可以通过使用分配给任务的userrole标签来省略不需要的部分。

使用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

关于项目

Simulate the access of AWS IAM users and roles performing various actions against any ARN.

安装
ansible-galaxy install deekayen.iam_access_simulation
许可证
bsd-3-clause
下载
14.7k
拥有者
My initials spelled as a word - pronounced /dEE-kAY-En/