CodeDeploy 设置中通常有两种情况...“创建”部署的部分(通常是您的 CI 服务器/构建代理)和在目标实例上运行并执行实际部署的 CodeDeploy 代理.前半部分基本上是推到 CodeDeployment 中,后半部分是 拉...这就是我喜欢的可视化方式。
对于 CI 服务器/构建代理,它们应该具有具有如下权限的 IAM 角色... 这允许构建代理 (1) 访问您指定用于部署的 S3 存储桶和 (2) 访问 CodeDeploy创建修订等的服务。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": "arn:aws:s3:::*"
}, {
"Effect": "Allow",
"Action": [
"s3:PutObject"
],
"Resource": "arn:aws:s3:::YourDeploymentBucket"
},
{
"Effect": "Allow",
"Action": [
"codedeploy:*"
],
"Resource": "*"
}
]
}
在目标 EC2 实例上,它们需要有这样的东西... 这使 CodeDeploy 代理服务 (1) 可以访问 S3 存储桶以提取修订版,以及 (2) 访问所有通用代码部署存储桶因此代理可以自行更新。当然,这些实例需要满足所有其他条件……通常,它们需要 IAM 角色并且需要安装代码部署代理。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::YourDeploymentBucket/*",
"arn:aws:s3:::aws-codedeploy-us-east-1/*",
"arn:aws:s3:::aws-codedeploy-us-west-1/*",
"arn:aws:s3:::aws-codedeploy-us-west-2/*",
"arn:aws:s3:::aws-codedeploy-ap-northeast-1/*",
"arn:aws:s3:::aws-codedeploy-ap-northeast-2/*",
"arn:aws:s3:::aws-codedeploy-ap-south-1/*",
"arn:aws:s3:::aws-codedeploy-ap-southeast-1/*",
"arn:aws:s3:::aws-codedeploy-ap-southeast-2/*",
"arn:aws:s3:::aws-codedeploy-eu-central-1/*",
"arn:aws:s3:::aws-codedeploy-eu-west-1/*",
"arn:aws:s3:::aws-codedeploy-sa-east-1/*"
]
}
]
}
如何分配这些权限取决于您...如果您的构建代理是 EC2 实例,最好将这些作为附加到与实例关联的 IAM 角色的策略进行分配。对于目标部署机器,您可以执行相同操作...创建一个策略并将其分配给与您要定位的实例关联的 IAM 角色。