认证考题 | 识别 AWS IAM 凭据配置的优先顺序


  题目

A developer is receiving AccessDenied errors when the developer invokes API calls to AWS services from a workstation. The developer previously configured environment variables and configuration files on the workstation to use multiple roles with other AWS accounts. A security engineer needs to help the developer configure authentication. The current credentials must be evaluated without conflicting with other credentials that were previously configured on the workstation.
Where these credentials should be configured to meet this requirement?
A. In the local AWS CLI configuration file
B. As environment variables on the local workstation
C. As variables in the AWS CLI command line options
D. In the AWS shared configuration file

  参考答案

C

  需求概括

开发人员从工作站调用 AWS 服务 API 时收到“访问被拒绝(AccessDenied)”错误。该开发人员之前已在工作站上配置了环境变量和配置文件,以使用与其他 AWS 账户关联的多个角色。安全工程师需要帮助开发人员配置身份验证。必须在不与工作站上之前配置的其他凭证冲突的情况下评估当前凭证。这些凭证应配置在哪里以满足此要求?
开发人员调用 AWS 服务 API 出现访问被拒绝错误,其工作站之前配置了用于多个 AWS 账户角色的环境变量和配置文件。安全工程师要帮忙配置身份验证,需在不与之前凭证冲突的情况下评估当前凭证,要找出合适的凭证配置位置。

  参考解析

技巧:排除明显错误选项,在没有明显错误的选项中选择最合理的选项。

A. 不正确。在本地 AWS CLI 配置文件中。本地 AWS CLI 配置文件通常存储默认凭证,工作站已配置多个角色相关内容,在此配置新凭证易与之前配置冲突,无法确保仅评估当前凭证,不满足要求。
B. 不正确。作为本地工作站上的环境变量。工作站已配置多个角色的环境变量,再次通过环境变量配置新凭证会与之前环境变量混合,无法避免冲突,难以单独评估当前凭证,不符合要求。
C. 正确。作为 AWS CLI 命令行选项中的变量。AWS CLI 命令行指定变量可避免与长期存在的凭证冲突。
D. 不正确。在 AWS 共享配置文件中。AWS 共享配置文件可存储多个配置集,能为当前凭证创建独立配置集,避免与之前配置的其他凭证冲突,满足在不冲突情况下评估当前凭证的要求。

  技术总结

AWS 凭据和配置设置位于多个位置,例如系统或用户环境变量、本地 AWS 配置文件,或者作为参数在命令行中明确声明。某些位置的优先级高于其他位置。
AWS CLI 凭据和配置设置的优先级顺序如下:

1. 命令行选项 – 覆盖任何其他位置的设置,例如 --region、--output 和 --profile 参数。
2. 环境变量 – 可以在系统的环境变量中存储值。
3. 代入角色 – 通过配置或 assume-role 命令代入 IAM 角色的权限。
4. 使用 Web 身份代入角色 – 通过配置或 assume-role-with-web-identity 命令使用 Web 身份代入 IAM 角色的权限。
5. AWS IAM Identity Center – 在运行 aws configure sso 命令时,存储在 config 文件中的 IAM Identity Center 配置设置将更新。运行 aws sso login 命令时会对凭证进行身份验证。config 文件位于 ~/.aws/config(在 Linux 或 macOS 上)或 C:\Users\USERNAME\.aws\config(在 Windows 上)。
5. 凭证文件 – 在运行命令 aws configure 时,将更新 credentials 和 config 文件。credentials 文件位于 ~/.aws/credentials(在 Linux 或 macOS 上)或 C:\Users\USERNAME\.aws\credentials(在 Windows 上)。
6. 自定义流程 – 从外部来源获取的凭证。
7. 配置文件 – 在运行命令 aws configure 时,将更新 credentials 和 config 文件。config 文件位于 ~/.aws/config(在 Linux 或 macOS 上)或 C:\Users\USERNAME\.aws\config(在 Windows 上)。
8. 容器凭证 – 可以将 IAM 角色与每个 Amazon Elastic Container Service (Amazon ECS) 作业定义关联。之后,该任务的容器就可以使用该角色的临时凭证。