【发布时间】:2018-07-23 05:53:48
【问题描述】:
我在使用 AWS Code Deploy 时遇到问题,似乎在访问 S3 时遇到问题,以下是错误消息:
2018-04-20 16:52:35 INFO [codedeploy-agent(2983)]: [Aws::CodeDeployCommand::Client 200 0.023779 0 retries] put_host_command_complete(command_status:"Failed",diagnostics:{format:"JSON",payload:"{\"error_code\":5,\"script_name\":\"\",\"message\":\"Access Denied\",\"log\":\"\"}"},host_command_identifier:"WyJjb20uYW1hem9uLmFwb2xsby5kZXBsb3ljb250cm9sLmRvbWFpbi5Ib3N0Q29tbWFuZElkZW50aWZpZXIiLHsiZGVwbG95bWVudElkIjoiQ29kZURlcGxveS9ldS13ZXN0LTEvUHJvZC9hcm46YXdzOnNkczpldS13ZXN0LTE6OTExODQyOTUzODAzOmRlcGxveW1lbnQvZC1JRUFFQ09NRlMiLCJob3N0SWQiOiJhcm46YXdzOmVjMjpldS13ZXN0LTE6OTExODQyOTUzODAzOmluc3RhbmNlL2ktMDkxMGQzZjI4YWI0OTA2OGQiLCJjb21tYW5kTmFtZSI6IkRvd25sb2FkQnVuZGxlIiwiY29tbWFuZFBvc2l0aW9uIjoyLCJjb21tYW5kQXR0ZW1wdCI6MX1d")
2018-04-20 16:52:35 ERROR [codedeploy-agent(2983)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: Aws::S3::Errors::AccessDenied - Access Denied - /opt/codedeploy-agent/vendor/gems/aws-sdk-core-2.10.104/lib/seahorse/client/plugins/raise_response_errors.rb:15:in `call'
我的 EC2 实例已使用 IAM 角色启动:CodeDeploy-EC2-Instance-Profile,其中包含以下权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:Get*",
"s3:List*"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::codepipeline-eu-west-1-373398414592"
]
}
]
}
根据我的阅读,这是正确的。
我尝试了以下方法:
删除 AWS 凭证文件 (~/.aws/credentials),以防 IAM 角色与此文件之间存在任何冲突。但这并没有什么不同,我仍然遇到上述错误。
我还注意到它的“put_host_command_complete”失败了,所以我更新了上述策略的“操作”部分以获得 PUT 权限,即
"Action": [
"s3:Get*",
"s3:List*",
"s3: Put*"
]
但这也没有任何区别。
任何帮助表示赞赏。
问候, 史蒂夫
【问题讨论】:
标签: amazon-web-services aws-code-deploy