簡體   English   中英

AWS Code Deploy - 部署失敗

[英]AWS Code Deploy - deployment failed

我正在嘗試使用 aws 設置代碼部署,但是當我嘗試執行部署時,出現此錯誤:

2016-06-08 23:57:11 ERROR [codedeploy-agent(1207)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Cannot reach InstanceService: Aws::CodeDeployCommand::Errors::AccessDeniedException -
2016-06-08 23:58:41 INFO  [codedeploy-agent(1207)]: Version file found in /opt/codedeploy-agent/.version.
2016-06-08 23:58:41 INFO  [codedeploy-agent(1207)]: [Aws::CodeDeployCommand::Client 400 0.055741 0 retries] poll_host_command(host_identifier:"IAM-user-ARN") Aws::CodeDeployCommand::Errors::AccessDeniedException

我有兩個IAM角色 - 一個用於 EC2 實例,一個用於部署應用程序。 S3 存儲桶為用於部署的 iam 角色設置了權限:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "AWS": "XXXXXXXX:role/TestRole"
            },
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "arn:aws:s3:::pmcdeploy/*"
        }
    ]
}

這是怎么回事?

錯誤是否一致? 查看代理代碼時,代理似乎在與 EC2 通信時遇到問題。 如果這是一個持續存在的問題,您可以共享 EC2 實例配置文件。

此外,在啟用詳細選項的情況下啟動代理會提供有關正在發生的事情的更多信息。

謝謝

這實際上與憑據加載的順序有關。 默認情況下,主機代理以 root 用戶運行,並且還使用實例配置文件。

當您根據以下內容設置優先於實例配置文件的根憑據時會出現異常: http : //docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#config -設置和優先級

然后主機代理使用的 aws sdk 將使用為 root 用戶配置的憑證而不是實例配置文件來配置請求。

一種解決方法是使用不同的用戶運行代理,並且不為該用戶配置任何憑據。

我們遇到了我認為同樣的問題。 我們的系統有一個 /root/.aws/credentials ,CodeDeploy絕對使用它,我發現沒有辦法告訴它不要這樣做。 尤其是沒有文檔...

最后,我們重寫了所有內容,以確保我們不再需要適當的憑據文件。 從那一刻起,CodeDeploy 使用了實例配置文件並且運行良好。

我刪除了 /home/ubuntu/.aws 並重新啟動了 codedeploy 代理服務,它對我有用:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM