Amazon Tools for PowerShell 版本 5(V5)已经发布!
要开始使用新版本的工具,请参阅《Amazon Tools for PowerShell 用户指南(V5)》,特别是关于迁移到 V5 的主题。
使用 Amazon 配置工具身份验证
使用 Amazon Web Services 服务进行开发时,您必须确定您的代码是如何使用 Amazon 进行身份验证的。您可以通过不同的方式对 Amazon 资源的编程访问权限进行配置,具体取决于环境和您可用的 Amazon 访问权限。
要查看适用于 PowerShell 的工具的各种身份验证方法,请参阅《Amazon 开发工具包和工具参考指南》中的身份验证和访问。
本主题假设新用户正在本地进行开发工作,雇主未向其提供身份验证方法,新用户将使用 Amazon IAM Identity Center 来获取临时凭证。如果您的环境与这些假设不符,则本主题中的某些信息可能不适用于您,或者某些信息可能已经提供给您。
配置此环境需要几个步骤,总结如下:
启用和配置 IAM Identity Center
要使用 Amazon IAM Identity Center,必须先启用和配置它。要详细了解如何为 PowerShell 执行此操作,请查看《Amazon 开发工具包和工具参考指南》中 IAM Identity Center 身份验证主题内的步骤 1。具体而言,请按照我没有通过 IAM Identity Center 确立访问权限下的所有必要说明进行操作。
将适用于 PowerShell 的工具配置为使用 IAM Identity Center。
注意
从 Tools for PowerShell 的 4.1.538 版本开始,配置 SSO 凭证并启动 Amazon 访问门户会话的推荐方法是使用 Initialize-AWSSSOConfiguration 和 Invoke-AWSSSOLogin cmdlet,如本主题所述。如果您无法访问该版本(或更高版本)的 Tools for PowerShell 或无法使用这些 cmdlet,您仍然可以通过使用 Amazon CLI 来执行这些任务。要了解操作方法,请参阅 使用 Amazon CLI 进行门户登录。
以下过程使用 SSO 信息更新共享的 Amazon config 文件,Tools for PowerShell 使用该信息获取临时凭证。此过程的结果是,同时会启动一个 Amazon 访问门户会话。如果共享的 config 文件已包含 SSO 信息,并且您只想了解如何使用 Tools for PowerShell 启动访问门户会话,请参阅本主题的下一部分 开始 Amazon 访问门户会话。
-
如果尚未完成,请打开 PowerShell 并根据您的操作系统和环境安装 Amazon Tools for PowerShell,包括通用 cmdlet。有关如何执行此操作的信息,请参阅 安装 Amazon Tools for PowerShell。
例如,如果在 Windows 上安装模块化版本的 Tools for PowerShell,您很可能会运行类似于以下内容的命令:
Install-Module -Name AWS.Tools.Installer Install-AWSToolsModule AWS.Tools.Common -
运行以下命令。将示例属性值替换为来自您的 IAM Identity Center 配置的值。有关这些属性及其查找方法的信息,请参阅《Amazon SDK 和工具参考指南》中的 IAM Identity 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,Tools for PowerShell 将提示您输入属性值。某些属性值的注意事项:
-
如果您仅按照启用并配置 IAM Identity Center 的说明操作,则
-RoleName的值可能为PowerUserAccess。但如果您专门为 PowerShell 工作创建了 IAM Identity Center 权限集,请改用该权限集。 -
请确保使用您已配置 IAM Identity Center 的 Amazon Web Services 区域。
-
-
此时,共享的 Amazon
config文件包含一个名为my-sso-profile的配置文件,其中包含一组可以从 Tools for PowerShell 引用的配置值。要查找此文件的位置,请参阅《Amazon 开发工具包和工具参考指南》中的共享文件的位置。适用于 PowerShell 的工具在向 Amazon 发送请求之前,使用配置文件的 SSO 令牌提供程序获取凭证。
sso_role_name值是与 IAM Identity Center 权限集关联的 IAM 角色,应允许访问您的应用程序中使用的 Amazon Web Services 服务。以下示例显示了使用上述命令创建的配置文件。您实际配置文件中的某些属性值及其顺序可能有所不同。配置文件的
sso-session属性引用名为my-sso-session的部分,该部分包含用于启动 Amazon 访问门户会话的设置。[profile my-sso-profile] sso_account_id=111122223333sso_role_name=SamplePermissionSetsso_session=my-sso-session [sso-session my-sso-session] sso_region=us-west-2sso_registration_scopes=sso:account:access sso_start_url=https://provided-domain.awsapps.com/start/ -
如果您已有活动的 Amazon 访问门户会话,Tools for PowerShell 会通知您已登录。
如果情况并非如此,Tools for PowerShell 会尝试在您的默认 Web 浏览器中自动打开 SSO 授权页面。按照浏览器中的提示操作,其中可能包括 SSO 授权码、用户名和密码以及访问 Amazon IAM Identity Center 账户和权限集的权限。
Tools for PowerShell 会通知您 SSO 登录成功。
开始 Amazon 访问门户会话
在运行访问 Amazon Web Services 服务 的命令之前,您需要有一个活动的 Amazon 访问门户会话,以便 Tools for PowerShell 可以使用 IAM Identity Center 身份验证来解析凭证。要登录到 Amazon 访问门户,请在 PowerShell 中运行以下命令,其中 -ProfileName my-sso-profile 是您按照本主题前一节中的过程操作时在共享 config 文件中创建的配置文件的名称。
Invoke-AWSSSOLogin -ProfileName my-sso-profile
如果您已有活动的 Amazon 访问门户会话,Tools for PowerShell 会通知您已登录。
如果情况并非如此,Tools for PowerShell 会尝试在您的默认 Web 浏览器中自动打开 SSO 授权页面。按照浏览器中的提示操作,其中可能包括 SSO 授权码、用户名和密码以及访问 Amazon IAM Identity Center 账户和权限集的权限。
Tools for PowerShell 会通知您 SSO 登录成功。
要测试您是否已拥有活动会话,请在安装或导入 AWS.Tools.SecurityToken 模块后运行以下命令。
Get-STSCallerIdentity -ProfileName my-sso-profile
对 Get-STSCallerIdentity cmdlet 的响应报告了在共享 config 文件中配置的 IAM Identity Center 账户和权限集。
示例
以下示例说明如何将 IAM Identity Center 与适用于 PowerShell 的工具一起使用。该示例假定以下内容:
-
您已启用 IAM IAM Identity Center,并按照本主题前面所述对其进行了配置。SSO 属性位于
my-sso-profile配置文件中,该文件在本主题前面部分已配置。 -
当您通过
Initialize-AWSSSOConfiguration或Invoke-AWSSSOLogincmdlet 登录时,用户至少拥有对 Amazon S3 的只读权限。 -
某些 S3 存储桶可供该用户查看。
根据需要安装或导入 AWS.Tools.S3 模块,然后使用以下 PowerShell 命令显示 S3 存储桶列表。
Get-S3Bucket -ProfileName my-sso-profile
其他信息
-
有关适用于 PowerShell 的工具身份验证的更多选项,例如配置文件和环境变量的使用,请参阅《Amazon 开发工具包和工具参考指南》中的配置章节。
某些命令需要指定 Amazon 区域。有多种方法可以实现,包括
-Regioncmdlet 选项、[default]配置文件和AWS_REGION环境变量。有关更多信息,请参阅本指南中的 指定 Amazon 区域 以及《Amazon SDK 和工具参考指南》中的 Amazon 区域。-
有关最佳实践的更多信息,请参阅《IAM 用户指南》中的 IAM 中的安全最佳实践。
-
要创建短期 Amazon 凭证,请参阅《IAM 用户指南》中的临时安全凭证。
-
要了解其他凭证提供程序,请参阅《Amazon 开发工具包和工具参考指南》中的标准化凭证提供程序。