AWS STS 使用工具的示例 PowerShell - AWS SDK代码示例

AWS 文档 AWS SDK示例 GitHub 存储库中还有更多SDK示例

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

AWS STS 使用工具的示例 PowerShell

以下代码示例向您展示了如何使用with来执行操作和实现常见场景 AWS STS。 AWS Tools for PowerShell

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示如何使用 Convert-STSAuthorizationMessage

用于 PowerShell

示例 1:对为响应请求而返回的所提供编码消息内容中包含的其他信息进行解码。对其他信息进行编码的原因是,授权状态的详细信息可能构成请求操作的用户不应看到的特权信息。

Convert-STSAuthorizationMessage -EncodedMessage "...encoded message..."

以下代码示例演示如何使用 Get-STSFederationToken

用于 PowerShell

示例 1:使用“Bob”作为联合用户的名称,请求有效期为一小时的联合令牌。此名称可用于引用基于资源的策略(例如 Amazon S3 存储桶策略)中的联合用户名。提供的JSON格式IAM策略用于缩小IAM用户可用的权限范围。提供的策略授予的权限不能超过向请求用户授予的权限,根据所通过的策略和用户策略的交集,联合用户的最终权限是限制性最强的设置。IAM

Get-STSFederationToken -Name "Bob" -Policy "...JSON policy..." -DurationInSeconds 3600
  • 有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考GetFederationToken中的。

以下代码示例演示如何使用 Get-STSSessionToken

用于 PowerShell

示例 1:返回包含在设定时间段内有效的临时凭证的 Amazon.RuntimeAWSCredentials 实例。用于请求临时凭证的凭证是根据当前 shell 默认值推断出来的。要指定其他凭据,请使用-ProfileName 或-AccessKey /-SecretKey 参数。

Get-STSSessionToken

输出:

AccessKeyId Expiration SecretAccessKey SessionToken ----------- ---------- --------------- ------------ EXAMPLEACCESSKEYID 2/16/2015 9:12:28 PM examplesecretaccesskey... SamPleTokeN.....

示例 2:返回包含有效期为一小时的临时凭证的 Amazon.RuntimeAWSCredentials 实例。用于发出请求的凭证是从指定的配置文件中获得的。

Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile

输出:

AccessKeyId Expiration SecretAccessKey SessionToken ----------- ---------- --------------- ------------ EXAMPLEACCESSKEYID 2/16/2015 9:12:28 PM examplesecretaccesskey... SamPleTokeN.....

Amazon.RuntimeAWSCredentials例 3:返回包含有效期为一小时的临时凭证的实例,该凭证使用与账户关联的MFA设备的标识号和设备提供的值,其凭证在配置文件 “myprofilename” 中指定。

Get-STSSessionToken -DurationInSeconds 3600 -ProfileName myprofile -SerialNumber YourMFADeviceSerialNumber -TokenCode 123456

输出:

AccessKeyId Expiration SecretAccessKey SessionToken ----------- ---------- --------------- ------------ EXAMPLEACCESSKEYID 2/16/2015 9:12:28 PM examplesecretaccesskey... SamPleTokeN.....
  • 有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考GetSessionToken中的。

以下代码示例演示如何使用 Use-STSRole

用于 PowerShell

示例 1:返回一组临时证书(访问密钥、私有密钥和会话令牌),这些证书可用一小时来访问请求用户通常可能无法访问的 AWS 资源。返回的凭证具有所担任角色的访问策略和所提供策略允许的权限(您不能使用所提供策略授予超出所担任角色访问策略定义权限的权限)。

Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -Policy "...JSON policy..." -DurationInSeconds 3600

示例 2:返回一组有效期为一小时的临时凭证,其拥有的权限与所担任角色访问策略中定义的权限相同。

Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600

示例 3:返回一组临时证书,这些证书提供序列号和从与用于执行 cmdlet 的用户凭据MFA关联的生成令牌。

Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -SerialNumber "GAHT12345678" -TokenCode "123456"

示例 4:返回一组临时凭证,其已承担客户账户中定义的角色。对于第三方可以担任的每个角色,客户账户都必须使用标识符创建角色,每次担任该角色时都必须在-ExternalId 参数中传递该标识符。

Use-STSRole -RoleSessionName "Bob" -RoleArn "arn:aws:iam::123456789012:role/demo" -DurationInSeconds 3600 -ExternalId "ABC123"
  • 有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考AssumeRole中的。

以下代码示例演示如何使用 Use-STSWebIdentityRole

用于 PowerShell

示例 1:为已通过 Login with Amazon 身份提供者进行身份验证的用户返回一组临时凭证,有效期为一小时。凭证采用与角色标识的角色关联的访问策略ARN。或者,您可以将JSON策略传递给-Policy 参数,以进一步细化访问权限(您授予的权限不能超过与该角色关联的权限中可用的权限)。提供给-的值WebIdentityToken 是身份提供商返回的唯一用户标识符。

Use-STSWebIdentityRole -DurationInSeconds 3600 -ProviderId "www.amazon.com" -RoleSessionName "app1" -RoleArn "arn:aws:iam::123456789012:role/FederatedWebIdentityRole" -WebIdentityToken "Atza...DVI0r1"