Доступ к PutObject запрещен для настройки кросс-аккаунта - PullRequest
0 голосов
/ 18 октября 2019

Я настраиваю кросс-учетную запись между двумя учетными записями AWS, и я хотел бы, чтобы учетная запись B могла передавать файлы / журналы на учетную запись A. У меня есть корзина S3, зашифрованная с помощью Шифрование KMS в учетной записи A.

К корзине учетной записи A прикреплена политика:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::00000000:role/some-role-in-account-B"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3::some-bucket-in-account-A",
                "arn:aws:s3:::some-bucket-in-account-A/*"
            ]
        }
    ]
}

В учетной записи B, я создал роль (some-role-in-account-B) с прикрепленной ниже политикой:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::some-bucket-in-account-A",
                "arn:aws:s3:::some-bucket-in-account-A/*"
            ]
        }
    ]
}

У меня есть экземпляр в учетной записи B, в которомЯ прикрепил роль some-role-in-account-B .

Запуск их из экземпляра: aws s3 ls s3://some-bucket-in-account-A работает нормально. Однако aws s3 cp some-random-file s3://some-bucket-in-account-A завершается с ошибкой: An error occurred (AccessDenied) when calling the PutObject operation: Access Denied. Кто-нибудь знает, чего мне не хватает?

1 Ответ

1 голос
/ 18 октября 2019

Необходимо предоставить роли из учетной записи B доступ к ключу KMS. См. Здесь для получения дополнительной информации: https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-denied-error-s3/

Имейте в виду, я не думаю, что вам нужно предоставлять все полномочия, на которые ссылается статья, для роли, вам нужно только предоставить следующее:

  • км: шифрование
  • км: GenerateDataKey
  • км: повторное шифрование *
...