使用配置工具身份验证 AWS - AWS Tools for PowerShell

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用配置工具身份验证 AWS

使用开发 AWS 时,您必须确定您的代码是如何进行身份验证的。 AWS 服务您可以通过不同的方式配置对 AWS 资源的编程访问权限,具体取决于环境和可用的 AWS 访问权限。

要查看的工具的各种身份验证方法 PowerShell,请参阅《AWS 软件开发工具包和工具参考指南》中的身份验证和访问权限

本主题假设新用户正在本地开发,雇主未向其提供身份验证方法,并将使用该用户 AWS IAM Identity Center 来获取临时证书。如果您的环境与这些假设不符,则本主题中的某些信息可能不适用于您,或者某些信息可能已经提供给您。

配置此环境需要几个步骤,总结如下:

启用和配置 IAM Identity Center

要使用 AWS IAM Identity Center,必须先启用并配置它。要查看有关如何执行此操作的详细信息 PowerShell,请查看《软件开发工具包和AWS 工具参考指南》中 IAM Id entity Center 身份验证主题中的步骤 1。具体而言,请按照我没有通过 IAM Identity Center 确立访问权限下的所有必要说明进行操作。

配置工具 PowerShell 以使用 IAM 身份中心。

注意

从 4.1.538 版本的工具开始 PowerShell,配置 SSO 凭据和启动 AWS 访问门户会话的推荐方法是使用Initialize-AWSSSOConfigurationInvoke-AWSSSOLogincmdlet,如本主题所述。如果您无法访问该版本的 PowerShell (或更高版本)的工具,或者无法使用这些 cmdlet,则仍然可以使用来执行这些任务。 AWS CLI要了解具体操作方法,请参阅使用 AWS CLI 进行门户登录

以下过程 PowerShell 使用工具用来获取临时证书的 SSO 信息更新共享 AWS config文件。此过程的结果是, AWS 访问门户会话也将启动。如果共享config文件中已有 SSO 信息,而您只想知道如何使用工具启动访问门户会话 PowerShell,请参阅本主题的下一节。启动 AWS 访问门户会话

  1. 如果您尚未这样做,请 AWS Tools for PowerShell 根据您的操作系统 PowerShell 和环境打开并安装相应的,包括常用 cmdlet。有关如何执行此操作的信息,请参阅 安装 AWS Tools for PowerShell

    例如,如果在 Windows PowerShell 上安装模块化版本的工具,则很可能会运行类似于以下内容的命令:

    Install-Module -Name AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.Common
  2. 运行以下命令。将示例属性值替换为您的 IAM 身份中心配置中的值。有关这些属性以及如何找到它们的信息,请参阅《软件开发工具包和工具参考指南》中的 IAM I AWS d entity Center 凭证提供商设置

    $params = @{ ProfileName = 'my-sso-profile' AccountId = '111122223333' RoleName = 'SamplePermissionSet' SessionName = 'my-sso-session' StartUrl = 'https://provided-domain.awsapps.com/start' SSORegion = 'us-west-2' RegistrationScopes = 'sso:account:access' }; Initialize-AWSSSOConfiguration @params

    或者,你可以简单地使用 cmdlet 本身Initialize-AWSSSOConfiguration,而且 “工具” PowerShell 会提示你输入属性值。

    某些属性值的注意事项:

    • 如果您只是按照说明启用和配置 IAM Identity Center,则的值-RoleName可能为PowerUserAccess。但是,如果您创建了专门用于 PowerShell 工作的 IAM 身份中心权限集,请改用该权限集。

    • 请务必使用您已配置 IAM 身份中心 AWS 区域 的位置。

  3. 此时,共享 AWS config文件包含一个名为的配置文件,其中my-sso-profile包含一组配置值,可以从的工具中引用这些值 PowerShell。要查找此文件的位置,请参阅《AWS SDK 和工具参考指南》中的共享文件的位置

    Tools for PowerShell 使用配置文件的 SSO 令牌提供者在向发送请求之前获取凭证。 AWS该sso_role_name值是与 IAM Identity Center 权限集关联的 IAM 角色,应允许访问您的应用程序中 AWS 服务 使用的权限。

    以下示例显示了使用上面显示的命令创建的配置文件。在您的实际配置文件中,某些属性值及其顺序可能有所不同。配置文件的sso-session属性是指名为的部分my-sso-session,其中包含用于启动 AWS 访问门户会话的设置。

    [profile my-sso-profile] sso_account_id=111122223333 sso_role_name=SamplePermissionSet sso_session=my-sso-session [sso-session my-sso-session] sso_region=us-west-2 sso_registration_scopes=sso:account:access sso_start_url=https://provided-domain.awsapps.com/start/
  4. 如果您已经有一个活跃的 AWS 访问门户会话,则工具会 PowerShell 通知您您已经登录。

    如果不是这样,则工具会 PowerShell 尝试在您的默认 Web 浏览器中自动打开 SSO 授权页面。按照浏览器中的提示进行操作,其中可能包括 SSO 授权码、用户名和密码以及访问 AWS IAM Identity Center 帐户和权限集的权限。

    的工具会 PowerShell 通知您 SSO 登录已成功。

启动 AWS 访问门户会话

在运行访问命令之前 AWS 服务,您需要一个有效的 AWS 访问门户会话,以便工具 PowerShell 可以使用 IAM Identity Center 身份验证来解析证书。要登录 AWS 访问门户,请在中运行以下命令 PowerShell,其中-ProfileName my-sso-profile是按照本主题前一节中的步骤操作时在共享config文件中创建的配置文件的名称。

Invoke-AWSSSOLogin -ProfileName my-sso-profile

如果您已经有一个活跃的 AWS 访问门户会话,则工具会 PowerShell 通知您您已经登录。

如果不是这样,则工具会 PowerShell 尝试在您的默认 Web 浏览器中自动打开 SSO 授权页面。按照浏览器中的提示进行操作,其中可能包括 SSO 授权码、用户名和密码以及访问 AWS IAM Identity Center 帐户和权限集的权限。

的工具会 PowerShell 通知您 SSO 登录已成功。

要测试是否已有活动会话,请在安装或导入AWS.Tools.SecurityToken模块后根据需要运行以下命令。

Get-STSCallerIdentity -ProfileName my-sso-profile

Get-STSCallerIdentity cmdlet 的响应会报告共享config文件中配置的 IAM Identity Center 账户和权限集。

示例

以下是如何将 IAM 身份中心与工具配合使用的示例 PowerShell。该示例假定以下内容:

  • 您已启用 IAM IAM Identity Center,并按照本主题前面所述对其进行了配置。SSO 属性位于本主题前my-sso-profile面部分配置的配置文件中。

  • 当您通过Initialize-AWSSSOConfigurationInvoke-AWSSSOLogin cmdlet 登录时,该用户至少拥有对 Amazon S3 的只读权限。

  • 某些 S3 存储桶可供该用户查看。

根据需要安装或导入AWS.Tools.S3模块,然后使用以下 PowerShell 命令显示 S3 存储桶列表。

Get-S3Bucket -ProfileName my-sso-profile

其他信息

  • 有关工具身份验证的更多选项 PowerShell,例如配置文件和环境变量的使用,请参阅《软件开发工具包和AWS 工具参考指南》中的配置章节。

  • 有些命令需要指定 AWS 区域。有多种方法可以执行此操作,包括 -Region cmdlet 选项、[default]配置文件和AWS_REGION环境变量。有关更多信息,请参阅本指南指定 AWS 区域中的,以及软件开发工具包和AWS 工具参考指南中的AWS 区域

  • 有关最佳实践的更多信息,请参阅《IAM 用户指南》中的 IAM 中的安全最佳实践

  • 要创建短期 AWS 证书,请参阅 IAM 用户指南中的临时安全证书

  • 要了解其他凭证提供程序,请参阅《AWS 开发工具包和工具参考指南》中的标准化凭证提供程序