我正在运行Docker版本17.06.2-ee-6,在Amazon EC2,Windows Server 2016上构建e75fdb8。实例角色有权从一个特定的S3存储桶中获取文件:
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::my-s3-bucket/*"
]
}
通常,如果我运行aws s3 cp s3://my-s3-bucket/my-file .
,则会成功下载。但是,如果我使用以下命令创建透明的Docker网络:
docker network create -d transparent networkName
然后运行相同的AWS CLI命令,它返回
fatal error: Unable to locate credentials
如果我然后删除该网络
docker network rm [thatNetwork]
下载再次有效。
为什么创建具有此效果的透明网络?
编辑:它似乎可以访问被阻止的AWS元数据IP地址(169.254.169.254)。仍然不知道为什么。
答案 0 :(得分:0)
我遇到了同样的问题,并通过添加第二个NIC并更改将169.254.169.254定向到新NIC的路由来解决此问题。
route print
将在Interface List
部分下方的顶部显示NIC索引route -p delete 169.254.169.254
删除了旧路线route -p add 169.254.169.254 mask 255.255.255.255 <gateway> IF <interface id from step 1>
将通过第二个nic将流量引导至元数据api