Q51 — AWS SAA-C03 第17章

第 51/89 题 | ← 返回第17章

Q1351. 一家公司必须授予一小群审计员对存储敏感审计日志的 Amazon S3 存储桶的只读访问权限。审计员每月将审查一次日志。该公司已为每位审计员配置了一个 IAM 用户。公司必须使用以下规范:该存储桶仅对该帐户保密。凭证是临时的,会自动轮换。访问权限将在每月审核期结束时失效。在 AWS CloudTrail 中,所有活动都可以追溯到单个用户。哪种解决方案能够满足这些要求?

正确答案: B. 创建一个具有只读 S3 存储桶访问权限的 IAM 角色。添加一个条件,允许审计人员在月度审核期间获得此访问权限。

解析

正确答案是 B。创建一个具有只读 S3 存储桶访问权限的 IAM 角色。添加一个条件,允许审计人员在月度审核期间获得此访问权限。解释:要求如下:存储桶保持私有状态(无公共访问权限)。临时、自动轮换的凭证(没有长期 IAM 用户凭证)。审核期结束后,访问权限将自动失效。AWS CloudTrail 中的可追踪活动(IAM 角色提供可审计性)。为什么选项 B 正确:有条件的 IAM 角色:IAM角色允许使用自动轮换的临时凭证(通过sts:AssumeRole)。信任策略可以限制哪些IAM用户(审计员)可以担任该角色。权限策略可以授予只读的 S3 访问权限。条件(例如 DateLessThan)可以强制规定角色只能在月度审核期内担任(例如,"DateLessThan": {"AWS:CurrentTime": "2024-11-30T00:00:00Z"})。CloudTrail 日志将显示哪个审核员担任了该角色以及何时担任的。其他选项错误的原因:A. 为所需对象生成预签名 URL错误:预签名 URL 提供对象级访问权限,而非存储桶级只读访问权限。需要每月手动重新生成 URL(没有基于时间的自动过期机制)。CloudTrail 中没有 URL 使用者的审计跟踪记录(仅记录生成 URL 的 IAM 用户)。C. 将每个审计员的 IAM 用户添加到存储桶 ACL 中,并赋予其读取权限。错误:存储桶访问控制列表 (ACL) 已弃用,不适用于细粒度访问控制(请改用存储桶策略或身份和访问管理)。审核期结束后需要手动删除用户(无自动过期)。使用长期凭据(IAM 用户),而非临时凭据。D. 启用 S3 静态网站托管 + 基于 IP 的存储桶策略 错误:静态网站托管会使存储桶公开可访问(违反了“私有存储桶”的要求)。基于 IP 的限制不可靠(企业 IP 地址可能会更改或被伪造)。没有临时凭证——审计人员需要长期访问权限。正确方法(方案 B):创建 IAM 角色(审计角色):信任策略:允许审计员的 IAM 用户承担该角色。权限策略:授予对审计日志存储桶的 s3:GetObject(或 s3:ListBucket + s3:GetObject)权限。条件:将角色承担限制在审核期内(例如,DateLessThan)。审计员使用 aws sts assume-role 命令在审核窗口期间获取临时凭证。CloudTrail 日志会捕获所有 AssumeRole 操作,并将活动与各个审计员关联起来。IAM角色策略示例:信任策略(允许审计人员担任此角色):JSON{“版本”:“2012-10-17”,“陈述”:[{“效果”:“允许”,"Principal": {"AWS": ["arn:aws:iam::123456789012:user/auditor1", "arn:aws:iam::123456789012:user/auditor2"]},"操作": "sts:AssumeRole",“健康)状况”:{"DateLessThan": {"AWS:CurrentTime": "2024-11-30T00:00:00Z"} // 审核期结束后过期 }}]}权限策略(只读 S3 访问权限):JSON{“版本”:“2012-10-17”,“陈述”:[{“效果”:“允许”,操作:["s3:ListBucket", "s3:GetObject"]"资源": ["arn:aws:s3:::audit-logs-bucket", "arn:aws:s3:::audit-logs-bucket/"] }]}结论:选项 B 是唯一满足所有要求的方案:私有存储桶(无公共访问权限)。临时、自动轮换的凭证(通过 IAM 角色)。自动过期(通过角色条件)。可审计性(CloudTrail 跟踪 AssumeRole 操作)。其他方案在安全性、自动化或可审计性方面均存在不足。