Amazon web services Windows EC2中的AWS CLI无法使用角色访问S3
我对AWS很陌生。我创建了一个IAM角色,该角色可以完全访问S3。我将此角色分配给了一个Windows ServerEC2实例。然后,我在该实例上安装了CLI。然后,我使用RDP远程访问该实例,并启动CMD windows,然后键入Amazon web services Windows EC2中的AWS CLI无法使用角色访问S3,amazon-web-services,amazon-ec2,command-line-interface,amazon-iam,role,Amazon Web Services,Amazon Ec2,Command Line Interface,Amazon Iam,Role,我对AWS很陌生。我创建了一个IAM角色,该角色可以完全访问S3。我将此角色分配给了一个Windows ServerEC2实例。然后,我在该实例上安装了CLI。然后,我使用RDP远程访问该实例,并启动CMD windows,然后键入 aws s3 ls 它抱怨说 Unable to locate credentials. You can configure credentials by running "aws configure". 既然此EC2已被分配了对S3具有完全访问权限的角色,为什
aws s3 ls
它抱怨说
Unable to locate credentials. You can configure credentials by running "aws configure".
既然此EC2已被分配了对S3具有完全访问权限的角色,为什么我不能直接访问S3?要将AWS CLI与IAM角色一起使用,请创建一个。您可以指定角色的ARN以及有权访问该角色的配置文件的名称,而不是使用凭据配置此配置文件。感谢John Rotenstein的帮助。你给我指明了正确的方向。我从头开始创建了一个新实例,一切正常。我在上一个实例上安装了IIS和ASP.NET。这可能是原因吗?我偶然发现了这篇文章。您收到此消息的原因是@John Rotenstein指出,服务器无法访问元数据 运行
aws配置列表
将显示您没有任何凭据,因为消息中显示。这意味着服务器无法执行以下操作:
# 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配置列表将显示已添加凭据
我发现在Windows中解决此问题有助于您已正确完成所有操作,因此结果很奇怪。如果在EC2实例上使用web浏览器转到
http://169.254.169.254/latest/meta-data/iam/security-credentials/
?如果是,请将角色名称附加到该URL,并确认是否显示了安全凭据(例如访问密钥和密钥)。每次元数据URL超时时,请求都会超时吗?如果打开http://169.254.169.254/latest/meta-data/
在EC2实例上的浏览器中?听起来好像IAM角色没有连接到实例。不,我从EC2实例的浏览器中没有得到任何信息-它超时。我再次检查了连接到EC2的IAM角色:它具有AmazonS3完全访问和管理员访问。谢谢Ashan。我去看看。然而,在LinuxEC2中,我所做的将起作用。为什么它不能在Windows Server EC2中工作?当然欢迎您安装IIS和ASP.NET——这不应该“破坏”实例。很难知道是什么原因导致了这个问题——但是从一个新实例开始并再次加载软件通常更容易。事实上,这是最佳实践方法,因为这意味着您知道如何在将来重建实例。我目前面临着同样的问题。请告诉我您是如何解决此问题的。这是在Windows Server 2019上运行时唯一解决我的问题的方法。终于能够解决