Как я могу 'aws s3 синхронизировать' две корзины, которые находятся в разных учетных записях

Я пытаюсь использовать 'aws s3 sync' на awscli между двумя учетными записями.

Учетная запись A, моя. Учетная запись B, принадлежащая третьей стороне.

Учетная запись B предоставила пользователю: jon on account A разрешение на ведро через предположение роли: acceptDevOps.

Джон предполагает, что acceptDevOps имеет доступ к корзине на учетной записи B. Но теперь я нужно синхронизировать с корзиной обратно в учетной записи A.

Мне отказано в доступе. Возможно, из-за того, что роль, которую взял на себя Джон, не имеет разрешений на ведро обратно в моей учетной записи.

Как мне это сделать?

Есть ли документация по этой конкретной ситуации?

0
задан 2 July 2019 в 10:03
2 ответа

По сути, вам необходимо создать политику, разрешающую доступ к сегменту S3 на вашей стороне и роли, и привязать эту политику к роли.

Затем пользователь в Учетная запись B должна принять на себя созданную вами роль, которая позволяет получить доступ к вашей корзине.

Я считаю, что это именно та статья, которую вы ищете (более подробная): https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html

А это более конкретная статья: https://aws.amazon.com/premiumsupport/knowledge-center/copy-s3-objects-account/

1
ответ дан 4 December 2019 в 15:40

Учетные данные, используемые для выполнения команды aws s3 sync , требуют:

  • разрешений на чтение в исходном сегменте, И
  • разрешений на запись в месте назначения сегмент

Поскольку вы принимаете роль из исходной учетной записи (которая уже имеет разрешения на чтение в исходном сегменте), вам потребуется предоставить этой роли разрешения на запись в целевую корзину в вашей учетной записи. .

Это можно сделать с помощью политики сегмента в целевом сегменте, которая будет выглядеть примерно так:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::destination-bucket/*",
                "arn:aws:s3:::destination-bucket"
            ],
            "Principal": {"AWS":"arn:aws:iam::bbbbbbbbbbbb:role/assumeDevOps"}
        }
    ]
}
0
ответ дан 4 December 2019 в 15:40

Теги

Похожие вопросы