#amazon-web-services #amazon-s3 #aws-codepipeline #aws-code-deploy
#amazon-web-services #amazon-s3 #aws-codepipeline #aws-code-deploy
Вопрос:
У меня есть codepipeline в учетной записи A и codedeployment group в учетной записи B. Я вижу приведенную ниже ошибку, как только группа codedeployment запускает триггер The IAM role arn:aws:iam::accountb:role/testcrss does not give you permission to perform operations in the following AWS service: Amazon S3. Contact your AWS administrator if you need help. If you are an AWS administrator, you can grant permissions to your users or groups by creating IAM policies.
Я имел в виду этот документ, предоставленный aws для развертывания между учетными записями aws с использованием codepipeline, нужно ли мне настраивать что-либо, кроме информации, представленной в документе?
политики, прикрепленные к роли testcrss
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:Get*",
"s3:List*"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:DescribeKey",
"kms:GenerateDataKey*",
"kms:Encrypt",
"kms:ReEncrypt*",
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:us-east-2:AccountA:key/valuetest"
]
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:Get*"
],
"Resource": [
"arn:aws:s3:::AccountA bucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::AccountA bucket"
]
}
]
}
Политика корзины для учетной записи A
{
"Version": "2012-10-17",
"Id": "SSEAndSSLPolicy",
"Statement": [
{
"Sid": "DenyUnEncryptedObjectUploads",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::AccountAbucket/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
},
{
"Sid": "DenyInsecureConnections",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::AccountAbucket/*",
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
}
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AccountB:root"
},
"Action": [
"s3:Get*",
"s3:Put*"
],
"Resource": "arn:aws:s3:::AccountAbucket/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AccountB:root"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::AccountAbucket"
},
{
"Sid": "Cross-account permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AccountB:role/testcrss"
},
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": "arn:aws:s3:::AccountAbucket/*"
}
]
}
Доверительные отношения для Role testcrss
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": [
"codedeploy.amazonaws.com",
"ec2.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
Комментарии:
1. Пожалуйста, включите документ
2. Добавлен @ChrisWilliams
3. Похоже, что у
testcrss
и / или роли экземпляра нет разрешений для s3 на выполнение развертывания. Можете ли вы опубликовать роль и профиль экземпляра?4. @Marcin отредактировал вопрос с помощью политики json
5. Разрешает ли политика корзины в Acc A доступ из Acc B?
Ответ №1:
Проблема заключалась в том, что ключ KMS, который был добавлен в учетную запись B, был неверным, этот ключ необходим для доступа к корзине s3 в учетной записи A. Ключ KMS должен совпадать с ключом KMS, прикрепленным к кодовому конвейеру в учетной записи A