使用长期凭证进行 AWS SDK 和工具的身份验证
警告
为了避免安全风险,在开发专用软件或处理真实数据时,请勿使用 IAM 用户进行身份验证,而是使用与身份提供者的联合身份验证,例如 AWS IAM Identity Center。
如果您使用 IAM 用户运行代码,则开发环境中的 SDK 或工具将使用共享 AWS credentials 文件中的长期 IAM 用户凭证进行身份验证。查看 IAM 主题中的安全最佳实践,并尽快过渡到 IAM Identity Center 或其他临时凭证。
有关凭证的重要警告和指南
有关凭证的警告
-
请勿使用账户的根凭证来访问 AWS 资源。这些凭证可提供不受限的账户访问且难以撤销。
-
请勿在应用程序文件中按字面输入访问密钥或凭证信息。如果您这样做,则在将项目上传到公共存储库或在其他情况下,会有意外暴露凭证的风险。
-
不得在项目区域中放入包含凭证的文件。
-
请注意,共享 AWS
credentials文件中存储的所有凭证都是以明文形式存储的。
有关安全管理凭证的更多指南
有关如何安全地管理 AWS 凭证的一般性讨论,请参阅 AWS 一般参考 中的管理 AWS 访问密钥的最佳实践。除了上述讨论内容外,请考虑以下事项:
-
对于 Amazon Elastic Container Service (Amazon ECS),使用适用于任务的 IAM 角色。
-
对于在 Amazon EC2 实例上运行的应用程序,使用 IAM 角色。
先决条件:创建一个 AWS 账户
要使用 IAM 用户访问 AWS 服务,您需要一个 AWS 账户和 AWS 凭证。
-
创建账户。
要创建 AWS 账户,请参阅《AWS Account Management 参考指南》中的入门:您是 AWS 新用户吗?。
-
创建管理用户。
请勿使用 root 用户账户(您创建的初始账户)访问管理控制台和服务。而是创建一个管理用户账户,如《IAM 用户指南》的创建管理用户中所述。
创建管理用户账户并记录登录详细信息后,务必注销根用户账户并使用管理账户重新登录。
这两个帐户都不适合在 AWS 上进行开发或在 AWS 上运行应用程序。作为最佳实践,您需要创建适合这些任务的用户、权限集或服务角色。有关更多信息,请参阅《IAM 用户指南》中的应用最低权限许可。
步骤 1:创建您的 IAM 用户
-
按照《IAM 用户指南》中的创建 IAM 用户(控制台)过程操作来创建 IAM 用户。创建 IAM 用户时:
-
我们建议您选择向用户提供 AWS 管理控制台访问权限。这可让您通过可视化的环境查看与您运行的代码相关的 AWS 服务,例如检查 AWS CloudTrail 诊断日志或将文件上传到 Amazon Simple Storage Service。这在代码调试时将非常实用。
-
对于设置权限 - 权限选项,请选择直接附加策略,以确定您向该用户分配权限的方式。
-
大多数“入门”开发工具包教程都使用 Amazon S3 服务作为示例。要向应用程序提供对 Amazon S3 的完全访问权限,请选择要附加到此用户的
AmazonS3FullAccess策略。
-
-
您可以忽略该过程中有关设置权限边界或标签的可选步骤。
-
步骤 2:获取您的访问密钥
-
在 IAM 控制台的导航窗格中,选择用户,然后选择您之前创建用户的
User name。 -
在用户的页面上,选择安全凭证页面。然后,在访问密钥下,选择创建访问密钥。
-
对于创建访问密钥步骤 1,选择 命令行界面 (CLI) 或 本地代码。这两个选项生成的密钥类型相同,可与 AWS CLI 和 SDK 一起使用。
-
对于创建访问密钥步骤 2,输入可选标记并选择下一步。
-
对于创建访问密钥步骤 3,选择下载.csv 文件以保存包含您的 IAM 用户访问密钥和秘密访问密钥的
.csv文件。稍后您将需要此信息。警告
使用适当的安全措施来确保这些凭证的安全。
-
选择 Done (完成)。
步骤 3:更新共享 credentials 文件
-
创建或打开共享 AWS
credentials文件。此文件在 Linux 和 macOS 系统上为~/.aws/credentials,在 Windows 上为%USERPROFILE%\.aws\credentials。有关更多信息,请参阅 凭证文件位置。 -
将以下文本添加到共享
credentials文件中。将示例 ID 值和示例密钥值替换为先前下载的.csv文件中的值。[default] aws_access_key_id =AKIAIOSFODNN7EXAMPLEaws_secret_access_key =wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -
保存该文件。
共享 credentials 文件是存储凭证的最常见方式。它们也可以设置为环境变量,有关环境变量的名称,请参阅 AWS 访问密钥。这是一种入门方式,但我们建议您尽快过渡到 IAM Identity Center 或其他临时凭证。停止使用长期凭证后,请记得从共享 credentials 文件中删除这些凭证。