Windows EC2 中的 AWS CLI 无法使用角色访问 S3

AWS CLI in Windows EC2 cannot use role to access S3

我是 AWS 的新手。我创建了一个 IAM 角色,它可以完全访问 S3。我将此角色分配给 Windows Server EC2 实例。然后我在该实例上安装了 CLI。然后我使用 RDP 远程进入该实例,并启动 CMD windows,并输入

aws s3 ls

它抱怨

Unable to locate credentials. You can configure credentials by running "aws configure".

既然已经为这个EC2分配了S3的完全访问权限,为什么我不能直接访问S3?

要将 AWS CLI 与 IAM 角色结合使用,您需要创建一个 named profile。您无需使用凭据配置此配置文件,而是指定角色的 ARN 和有权访问它的配置文件的名称。

感谢 John Rotenstein 的帮助。你给我指出了正确的方向。我从头开始创建了一个新实例,一切正常。上一个实例我在其上安装了 IIS 和 ASP.NET。会不会是这个原因?

我偶然发现了这个 post。您收到此消息的原因是因为@John Rotenstein 所说,服务器无法访问元数据。

运行 aws config list 将显示您没有任何凭据,如消息所述。这意味着服务器不能执行以下操作:

# 169.254.169.254 is for metadata service
# 169.254.169.250 is for KmsInstanceVpc1
# 169.254.169.251 is for KmsInstanceVpc2

解决这个问题。最好只删除路由并重新添加它们。

"169.254.169.254/32", "169.254.169.253/32", "169.254.169.251/32", "169.254.169.250/32", "169.254.169.249/32", "169.254.169.123/32"

运行 a aws config list 将显示凭据已添加。

我发现 btuanexpress.net script 在 Windows 内解决这个问题有帮助