codeship で codedeploy を使用しようとすると頭痛がします。
コードシップのドキュメントはあまり明確ではありません。コードシップからうまく構築されたサンプルコードがあります。
私は持っている:
EC2 サーバーのインスタンス
デプロイ グループを持つ CodeDeploy アプリ: TestDeploymentGroup このグループは EC2 サーバーに関連付けられており、arn:aws:iam::514211081162:role/CodeDeploy と関連付けられています
アクセス キー ID とシークレット アクセス キーを持つユーザー:
4- ポリシー付きの S3 バケット
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::514211081162:role/CodeDeploy"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::myapp/*"
}
]
}
IAM ポリシー:
CodeDeployPolicy
arn:aws:iam::514211081162:policy/CodeDeployPolicy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codedeploy:RegisterApplicationRevision",
"codedeploy:GetApplicationRevision"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"codedeploy:CreateDeployment",
"codedeploy:GetDeployment"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"codedeploy:GetDeploymentConfig"
],
"Resource": [
"*"
]
}
]
}
このポリシーにはエンティティが添付されています: 役割: CodeDeploy
arn:aws:iam::514211081162:role/CodeDeploy
arn:aws:iam::514211081162:インスタンスプロファイル/CodeDeploy
Role CodeDeploy には CodeDeployPolicy (ここで定義) が添付されています。彼には信頼関係があります
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": [
"codedeploy.us-east-1.amazonaws.com",
"codedeploy.us-west-2.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
デプロイしようとすると、次のようになります。
upload failed: ../../../../../../tmp/AWSCODEDEPLOY_deployment_8dbb2cbc72a5db1e2e15368cbe97e0b5fcdf987e.zip to s3://aws-codedeploy-us-west-2/myapp/AWSCODEDEPLOY_deployment_8dbb2cbc72a5db1e2e15368cbe97e0b5fcdf987e.zip
A client error (AccessDenied) occurred when calling the CreateMultipartUpload operation: Access Denied
許可の問題であることは理解していますが、正直なところ、パラメーターが多すぎて、完全に迷っています...