一个CodeBuild项目将artifact上传到一个共享的S3存储桶。buildspec的post_build阶段使用了`--acl authenticated-read`,现在任何拥有AWS账户的人都可以下载这些artifact。DevOps工程师应该怎么做来防止这种情况发生?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 修改post_build命令,移除`--acl authenticated-read`,并配置一个存储桶策略,仅允许相关AWS账户读取访问权限。.
为什么这是答案
正确答案通过移除不必要的公开访问控制列表(ACL)并实施严格的存储桶策略来解决问题。--acl authenticated-read 允许任何拥有AWS账户的用户读取对象,这不符合安全要求。移除此ACL后,对象将不再默认对所有AWS账户公开。然后,通过配置一个S3存储桶策略,明确授予相关AWS账户读取权限,并隐式拒绝其他所有账户的访问,从而实现精细的访问控制。 其他选项不正确的原因: 修改为--acl public-read 会使对象对互联网上的所有人公开,这比authenticated-read 更不安全。 S3存储桶的默认ACL无法限制“认证用户集”为特定AWS账户,且ACL的粒度不如存储桶策略。 创建一个S3存储桶策略来拒绝主体“”的读取权限,同时授予相关账户权限,这是一种有效的策略,但如果--acl authenticated-read 仍然存在,ACL可能会覆盖或与策略冲突,导致意外的访问。移除ACL是更彻底和推荐的做法。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡