用途
review-access 是一个 IAM(身份与访问管理)访问审查技能,归属 transilienceai/shasta。根据官方说明,它用于执行周期性的 IAM 访问审查,会列出所有用户、权限与活动情况,并标记存在问题的地方,是 SOC 2 合规所要求的季度性工作。该技能面向 SOC 2 的 CC6.2、CC6.3 控制项进行访问审查。
主要能力
- 列出全部用户,以及用户的权限与活动信息。
- 标记存在问题的用户账户(flags)。
- 生成访问审查报告,并保存为文件,官方说明指出保存的报告可作为审计证据。
- 输出统计信息,包括:总用户数(total_users)、启用控制台的用户数(users_with_console)、启用 MFA 的用户数(users_with_mfa)、被标记用户数(users_flagged)。
- 输出每个被标记用户的详情:用户名、标记项、是否启用控制台、是否启用 MFA、所属组、附加策略、不活跃天数。
使用方式
技能会先读取 shasta.config.json 中的 python_cmd 配置,并以此作为所有命令的执行入口(文中记作 <PYTHON_CMD>)。
运行访问审查的命令如下:
<PYTHON_CMD> -c "
import json
from shasta.config import get_aws_client
from shasta.workflows.access_review import run_access_review, save_access_review
client = get_aws_client()
client.validate_credentials()
print('Running access review...')
report = run_access_review(client)
path = save_access_review(report)
print(json.dumps({
'report_path': str(path),
'total_users': report.total_users,
'users_with_console': report.users_with_console,
'users_with_mfa': report.users_with_mfa,
'users_flagged': report.users_flagged,
'flagged_users': [{
'username': r.username, 'flags': r.flags,
'has_console': r.has_console, 'has_mfa': r.has_mfa,
'groups': r.groups, 'attached_policies': r.attached_policies,
'days_inactive': r.days_inactive,
} for r in report.records if r.flags]
}, indent=2))
"
之后进行交互式展示:先呈现汇总统计,再逐个展示被标记用户,并给出建议操作(保留 / 修改 / 移除)。保存的报告作为审计证据。
适用场景
适用于需要按季度开展 IAM 访问审查、以满足 SOC 2 合规(CC6.2、CC6.3)要求的团队。审查结果会覆盖用户、权限与活动情况,输出被标记账户并给出处置建议,最终生成可供审计的报告。
限制
用户资料未提供该技能的具体限制、支持的云平台范围(仅从示例代码看涉及 AWS 客户端)、价格或收费信息,暂未提供。