CodeDeployエージェントがEC2のIAMロールを読み込んでいないのが原因のようで、以下実行してから再度試してみてください。
sudo systemctl restart codedeploy-agent
GitHubをリポジトリとしてEC2インスタンスにデプロイをしようとしています。
codedeploy agent(ruby)はインストール済です。
AWSのdeployコンソールでデプロイを実施したところ、下記のエラーが出ています。(/var/log/aws/codedeploy-agent)
<エラー内容>
2020-09-25 17:45:48 INFO [codedeploy-agent(4687)]: Version file found in /opt/codedeploy-agent/.version with agent version OFFICIAL_1.2.1-1868_rpm.
2020-09-25 17:45:48 INFO [codedeploy-agent(4687)]: Version file found in /opt/codedeploy-agent/.version with agent version OFFICIAL_1.2.1-1868_rpm.
2020-09-25 17:45:48 ERROR [codedeploy-agent(4687)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Missing credentials - please check if this instance was started with an IAM instance profile
2020-09-25 17:45:48 ERROR [codedeploy-agent(4687)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Missing credentials - please check if this instance was started with an IAM instance profile
IAMでロールのポリシーは下記となっています。
・サービスロール
ポリシー:AWSCodeDeployRole
信頼関係:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": [
"codedeploy.ap-northeast-1.amazonaws.com",
"codedeploy.us-east-2.amazonaws.com",
"codedeploy.eu-west-1.amazonaws.com",
"codedeploy.ap-northeast-2.amazonaws.com",
"codedeploy.eu-west-2.amazonaws.com",
"codedeploy.ap-south-1.amazonaws.com",
"codedeploy.sa-east-1.amazonaws.com",
"codedeploy.ap-southeast-1.amazonaws.com",
"codedeploy.ca-central-1.amazonaws.com",
"codedeploy.us-west-2.amazonaws.com",
"codedeploy.eu-central-1.amazonaws.com",
"codedeploy.ap-east-1.amazonaws.com",
"codedeploy.ap-southeast-2.amazonaws.com",
"codedeploy.us-east-1.amazonaws.com",
"codedeploy.us-west-1.amazonaws.com",
"codedeploy.eu-west-3.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
・EC2インスタンス用(インスタンスにアタッチ済)
ポリシー:AmazonEC2RoleforAWSCodeDeploy
AutoScalingNotificationAccessRole
信頼関係:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"ec2.amazonaws.com",
"codedeploy.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
※googleで当エラーに対して確認してみたのですが、解決方法(codedeploy agentの再起動)では解決できませんでした。
(sudo service codedeploy-agent restart)
念のためですが、下記のコマンドを実行すると値が設定されていないようです。(deploy01はEC2インスタンスにアタッチしたロール名)
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/deploy01
CodeDeployエージェントがEC2のIAMロールを読み込んでいないのが原因のようで、以下実行してから再度試してみてください。
sudo systemctl restart codedeploy-agent
お答ありがとうございます。ご提示の内容で実施してみましたが、結果は変わりませんでした。