View a markdown version of this page

在 AWS CLI 中使用 IAM 用户凭证进行身份验证 - AWS Command Line Interface

在 AWS CLI 中使用 IAM 用户凭证进行身份验证

警告

为了避免安全风险,在开发专用软件或处理真实数据时,请勿使用 IAM 用户进行身份验证,而是使用与身份提供者的联合身份验证,例如 AWS IAM Identity Center。

此部分介绍如何使用 IAM 用户配置基本设置。其中包括使用 config 和 credentials 文件的安全凭证。如需改为查看 AWS IAM Identity Center 的配置说明,请参阅 使用 AWS CLI 配置 IAM Identity Center 身份验证。

步骤 1:创建您的 IAM 用户

按照《IAM 用户指南》中的创建 IAM 用户(控制台)过程操作来创建 IAM 用户。

  • 对于权限选项,选择直接附加策略以了解如何向该用户分配权限。

  • 大多数“入门”开发工具包教程都使用 Amazon S3 服务作为示例。要向应用程序提供对 Amazon S3 的完全访问权限,请选择要附加到此用户的 AmazonS3FullAccess 策略。

步骤 2:获取您的访问密钥

  1. 登录 AWS 管理控制台,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/。

  2. 在 IAM 控制台的导航窗格中,选择用户,然后选择您之前创建用户的 User name。

  3. 在用户的页面上,选择安全凭证页面。然后,在访问密钥下,选择创建访问密钥。

  4. 对于创建访问密钥步骤 1,选择命令行界面 (CLI)。

  5. 对于创建访问密钥步骤 2,输入可选标记并选择下一步。

  6. 对于创建访问密钥步骤 3,选择下载.csv 文件以保存包含您的 IAM 用户访问密钥和秘密访问密钥的 .csv 文件。稍后您将需要此信息。

  7. 选择 Done (完成)。

步骤 3:配置 AWS CLI

在常规使用中,AWS CLI 需要以下信息:

  • 访问密钥 ID

  • 秘密访问密钥

  • AWS 区域

  • 输出格式

AWS CLI 将这些信息存储在 default 文件中名为 credentials 的配置文件(一个设置集合)中。预设情况下,当您运行的 AWS CLI 命令未明确指定要使用的配置文件时,将使用此配置文件中的信息。有关 credentials 文件的更多信息,请参阅AWS CLI 中的配置和凭证文件设置。

要配置 AWS CLI,请使用下列过程之一:

使用 aws configure

对于一般用途,aws configure 命令是设置 AWS CLI 安装的最快方法。此配置向导将提示您输入入门所需的每条信息。除非使用 --profile 选项另行指定,否则 AWS CLI 会将此信息存储在 default 配置文件中。

以下示例使用示例值配置 default 配置文件。将它们替换为您自己的值,如以下部分所述。

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

以下示例使用示例值配置名为 userprod 的配置文件。将它们替换为您自己的值,如以下部分所述。

$ aws configure --profile userprod AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

通过 .CSV 文件导入访问密钥

可以在创建访问密钥后导入下载的纯文本 .csv 文件,而不是使用 aws configure 输入访问密钥。

.csv 文件必须包含以下标头。

  • 用户名 - 必须将此列添加到您的 .csv。这将在导入时创建在 config 和 credentials 文件中使用的配置文件名称。

  • 访问密钥 ID

  • 秘密访问密钥

注意

在创建初始访问密钥的过程中,一旦您关闭下载 .csv 文件对话框,就无法访问秘密访问密钥。如果您需要 .csv 文件,则需要自己创建一个包含所需标头和存储的访问密钥信息的文件。如果您不具有对访问密钥信息的访问权限,则需要创建新的访问密钥。

要导入 .csv 文件,请将 aws configure import 命令与 --csv 选项结合使用,如下所示:

$ aws configure import --csv file://credentials.csv

有关更多信息,请参阅 aws_configure_import。

直接编辑 config 和 credentials 文件

要直接编辑 config 和 credentials 文件,请执行以下操作。

  1. 创建或打开共享 AWS credentials 文件。此文件在 Linux 和 macOS 系统上为 ~/.aws/credentials,在 Windows 上为 %USERPROFILE%\.aws\credentials。有关更多信息,请参阅 AWS CLI 中的配置和凭证文件设置。

  2. 将以下文本添加到共享 credentials 文件中。替换您之前下载的 .csv 文件中的示例值并保存该文件。

    [default] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

(可选)将多重身份验证与您的 IAM 用户凭证结合使用

为了提高安全性,当您尝试发出调用时,可以使用从多重身份验证(MFA)设备、U2F 设备或移动应用程序生成的一次性密钥。

使用启用 MFA 的 IAM 用户身份,运行 aws configure mfa-login 命令以配置一个新的配置文件,以便与所指定配置文件的多重身份验证(MFA)一起使用。如果未指定任何配置文件,则 MFA 将基于 default 配置文件。如果未配置默认配置文件,则 mfa-login 命令会在询问您的 MFA 信息之前提示您输入 AWS 凭证。以下命令示例使用您的默认配置并创建一个 MFA 配置文件。

$ aws configure mfa-login MFA serial number or ARN: arn:aws:iam::123456789012:mfa/MFADeviceName MFA token code: 123456 Profile to update [session-MFADeviceName]: Temporary credentials written to profile 'session-MFADeviceName' Credentials will expire at 2023-05-19 18:06:10 UTC To use these credentials, specify --profile session-MFADeviceName when running AWS CLI commands

要更新现有配置文件,请使用 --update-profile 参数。

$ aws configure mfa-login --profile myprofile --update-profile mfaprofile MFA token code: 123456 Temporary credentials written to profile 'mfaprofile' Credentials will expire at 2023-05-19 18:06:10 UTC To use these credentials, specify --profile mfaprofile when running AWS CLI commands

此命令当前仅支持基于软硬件的一次性密码(OTP)身份验证器。此命令当前不支持使用通行密钥和 U2F 设备。

要使用您的 MFA 配置文件,请在命令中使用 --profile 选项。

$ aws s3 ls --profile mfaprofile

有关将 MFA 与 IAM 结合使用的更多信息,包括如何将 MFA 分配给 IAM 用户,请参阅《AWS Identity and Access Management 用户指南》中的 IAM 中的 AWS 多重身份验证。