Обычно в настройке 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, связанным с экземплярами, на которые вы хотите настроить таргетинг.
person
Brett Green
schedule
19.12.2016