使用 Tools for PowerShell V4 的 AWS STS 示例 - AWS Tools for PowerShell(版本 4)

AWS Tools for PowerShell 版本 5(V5)已经发布!

要开始使用新版本的工具,请参阅《AWS Tools for PowerShell 用户指南(V5)》,特别是关于迁移到 V5 的主题。

使用 Tools for PowerShell V4 的 AWS STS 示例

以下代码示例演示如何将 AWS Tools for PowerShell V4 与 AWS STS 结合使用来执行操作和实现常见场景。

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

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

主题

操作

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

Tools for PowerShell V4

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

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

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

Tools for PowerShell V4

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

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

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

Tools for PowerShell V4

示例 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.....

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

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 Reference (V4)》中的 GetSessionToken

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

Tools for PowerShell V4

示例 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 Reference (V4)》中的 AssumeRole

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

Tools for PowerShell V4

示例 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"