[英]Docker container in EC2 is unable to write data into AWS S3 through AWS SDK
我有一台 docker 機器在 AWS EC2 實例上運行。 它假設通過 SDK 客戶端將數據上傳到 S3。
--driver amazonec2 \
--amazonec2-open-port ${open-port} \
--amazonec2-region ${region} \
--amazonec2-access-key ${access-key} \
--amazonec2-secret-key ${secret-key} \
--amazonec2-instance-type ${instance_type} \
--amazonec2-ami ${this.ami} \
--amazonec2-security-group ${security_group_name} \
--swarm \
--swarm-discovery token://${swarm_join_token} \
--swarm-addr ${ip_address};
"Version": "2012-10-17",
"Id": "Policyxxx",
"Statement": [
{
"Sid": "Stmtxxx",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::xxx"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::xxx",
"arn:aws:s3:::xxx/*"
]
}
]
}
它一直顯示error: AccessDenied: Access Denied
。 有人能幫我嗎?
從 EC2 實例上運行的容器對 S3 的訪問不是由您的 IAM 用戶憑證決定的。 相反,您應該為具有 S3 權限的實例設置 IAM 角色/配置文件,然后使用選項為您的docker-machine
提供角色/配置文件名稱:
--amazonec2-iam-instance-profile
如果您使用AWS CLI 或 SDK ,實例的權限將在容器內可用。
代替存儲桶策略,將S3 權限添加到實例角色更容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.