1

我正在尝试credential_source = Ec2InstanceMetadata在配置文件配置文件中设置选项,以便在 EC2 上运行的应用程序/工具可以承担特定角色而不是实例配置文件角色。

我有以下配置文件c:\aws\config

[SomeUser]
aws_access_key_id = AKIAXXX
aws_secret_access_key = zzzz

[profile RoleA]
role_arn = arn:aws:iam::1111111:role/RoleA
credential_source = Ec2InstanceMetadata

[profile RoleB]
role_arn = arn:aws:iam::1111111:role/RoleB
source_profile = SomeUser

要为当前 Powershell 会话设置配置文件,我运行此命令

PS C:\> Set-AWSCredentials -ProfileName RoleA -ProfileLocation c:\aws\config.

但是,它会引发错误

Set-AWSCredentials : Credential profile [RoleA] is not valid. Please ensure the profile contains a valid combination of properties.

根据文档credential_source = Ec2InstanceMetadata是一个有效选项,但如果我RoleA从配置文件中删除配置文件,它会接受该命令,导致我相信该选项无法识别。

一旦该角色被删除并且我RoleB作为ProfileNamewithSet-AWSCredentials命令传递,我可以运行其他假定的 AWS CLI 命令RoleB(在这种情况下,凭证取自 的 IAM 用户凭证[SomeUser])。但这不是我想要的,因为我不想将 IAM 凭证存储在实例上。

知道我做错了什么吗?

PS 我有以下 AWS PS 工具版本(Get-AWSPowerShellVersion

Amazon Web Services SDK for .NET: Core Runtime Version 3.3.22.5
AWS Tools for Windows PowerShell: Version 3.3.283.0`
4

1 回答 1

1

这是 AWS PowerShell 工具所基于的适用于 .NET 的 AWS 开发工具包中缺少的功能。您能否在我们的存储库中打开一个 GitHub 问题来帮助跟踪此功能。https://github.com/aws/aws-sdk-net

于 2018-08-10T17:53:26.387 回答