при развертывании кода не удается получить доступ к s3

#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