EC2 上的一个应用程序以前使用存储在环境变量中的 IAM 用户访问密钥通过 boto 调用 DynamoDB。开发人员附加了一个具有相同权限的实例角色,然后删除了 IAM 用户。重启后,应用程序日志显示 AccessDeniedException,但开发人员可以使用其个人账户在服务器上运行 DynamoDB CLI 命令。导致此异常的最可能原因是什么?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 应用程序仍在尝试使用已禁用的环境变量凭证。.
为什么这是答案
正确答案是“应用程序仍在尝试使用已禁用的环境变量凭证”。当应用程序启动时,它会加载环境变量。即使后来删除了 IAM 用户,应用程序在重启前仍可能持有旧的、无效的凭证。AWS SDK 默认会按照特定的凭证提供程序链查找凭证,环境变量通常优先于实例配置文件凭证。开发人员的个人账户可以运行 CLI 命令,是因为 CLI 会重新获取凭证,而应用程序没有。 其他选项不正确: IAM 策略传播通常很快,且AccessDeniedException表明凭证本身有问题,而非策略传播延迟。 AWS SDK 完全支持使用实例角色获取的临时凭证,这是推荐的最佳实践。 安全组不影响对元数据服务(169.254.169.254)的访问,而且如果无法访问元数据服务,通常会是不同的错误,而不是AccessDeniedException。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡