use*_*508 20 amazon-ec2 amazon-web-services docker
是否有直接的方法从Docker容器中访问AWS实例元数据?
例如,在尝试获取EC2实例上的IAM角色的凭据时,这将适用于实例本身:
http://169.254.169.254/latest/meta-data/iam/security-credentials/my_role
Run Code Online (Sandbox Code Playgroud)
...但不是在该EC2实例上运行的Docker容器中.
Ben*_*ley 30
在容器和主机之间执行此操作应该没有区别.容器可以直接访问EC2元数据.
root@f1e5964e87e4:/# curl http://169.254.169.254/latest/meta-data/iam/security-credentials/myrole
{
"Code" : "Success",
"LastUpdated" : "2014-03-14T17:07:24Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "mykey",
"SecretAccessKey" : "mysecret",
"Token" : "mytoken",
"Expiration" : "2014-03-14T23:09:39Z"
}
Run Code Online (Sandbox Code Playgroud)
当您从容器中尝试命令时,您看到了什么?是否分配了IAM角色?
如果您已将实例迁移到IMDSv2 *,则获取元数据的默认跃点限制将设置为1。此跃点限制将阻止Docker 容器访问元数据(假设它们使用的是 Docker 网络,而不是主机网络)。
该答案描述了如何更改跃点限制来纠正这种情况: /sf/answers/5031913351/
* IMDSv2 =“实例元数据服务版本 2”= EC2 的新的、更安全的、面向会话的元数据访问方法,某些安全审计推荐/要求使用该方法。
(感谢 @efess 的上述评论,这让我意识到这是我的问题。)
| 归档时间: |
|
| 查看次数: |
9926 次 |
| 最近记录: |