我是AWS的新手。我创建了一个IAM角色,可以完全访问 S3 。我将此角色分配给 Windows Server EC2实例。然后,我在该实例上安装了 CLI 。然后我使用RDP远程访问该实例,并启动了一个CMD窗口,并输入
vcRecaptchaService.getResponse($scope.campaignsRecaptchaID)
抱怨说
aws s3 ls
既然已经为此EC2分配了对S3具有完全访问权限的角色,为什么我不能直接访问S3?
答案 0 :(得分:4)
要将AWS CLI与IAM角色一起使用,您需要创建named profile。您可以指定角色的ARN以及可以访问该角色的配置文件的名称,而不是使用凭据配置此配置文件。
答案 1 :(得分:2)
感谢John Rotenstein的帮助。你指出了正确的方向。我从头开始创建了一个新实例,一切正常。我在上一个实例上安装了IIS和ASP.NET。可能是原因吗?
答案 2 :(得分:0)
我偶然发现了这篇文章。收到此消息的原因是因为@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"
运行aws config list
将显示凭据已添加。
我发现btuanexpress.net script在Windows中解决此问题会有所帮助