我正在尝试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
作为ProfileName
withSet-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`