Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

По сути, вам нужно создать политику, чтобы разрешить доступ к корзине 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/

Учетные данные, используемые для выполнения 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"}
        }
    ]
}