Как скопировать файлы из одной учетной записи AWS в другую учетную запись AWS - PullRequest
0 голосов
/ 03 сентября 2018

Мне нужно переместить файлы из клиентских S3 Buckets в наши S3 Buckets. Я попробовал несколько вещей:

  1. С помощью браузера S3 скопируйте и вставьте
  2. AWS CLI sync / cp, но я застрял, как передать ключ доступа и идентификатор доступа источника / места назначения

Не могли бы вы дать мне несколько советов. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 сентября 2018

Эта статья показывает несколько вариантов ...

  • Консоль AWS S3 - подходит для работы с ограниченным количеством объекты или передача в рамках одной учетной записи AWS.
  • Командная строка AWS interface (cli) - инструмент командной строки EC2.
  • AWS S3 SDK - Если вы готов написать код и написать свой собственный скрипт.
  • s3cmd от s3tools.org - инструмент командной строки, написанный на Python. Проверьте Альфи Ла Статья Питера об этом.
  • Браузер S3 - только для Windows.
  • CloudBerry S3 Explorer - только для Windows и по цене.
  • Bucket Explorer - Поддержка Windows, Mac и Linux (по цене).
  • CloudBuddy - плагин MS Office.

  • S3Fox - дополнение Firefox.

... и в нем также приведены подробные сведения о , как выполнить миграцию с помощью AWS CLI . Макро шаги:

  • Создание / идентификация сегментов
  • Создать учетную запись пользователя IAM
  • Настройка учетных данных пользователя
  • Создание политики пользователя
  • Создать политику Bucket
  • Проверка доступности CLI AWS S3 на экземпляре EC2
  • Настройка учетных данных S3 CLI
  • Наконец, скопируйте и переместите несколько объектов S3
0 голосов
/ 04 сентября 2018

У вас есть 2 варианта:

Извлечение файлов

Установите политику сегмента в вашем источнике, предоставляя доступ на чтение пользователю / роли в целевой учетной записи.

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "Example",
         "Effect": "Allow",
         "Action": [
            "s3:GetObject",
            "s3:ListBucket"
         ],
         "Principal": {
            "AWS": "arn:aws:iam::DEST_ACCOUNT:user/DestinationAccountUserName"
        },
         "Resource": [
            "arn:aws:s3:::source-bucket",
            "arn:aws:s3:::source-bucket/*"
         ]
      }
   ]
}

Затем вы можете запустить aws s3 sync s3://source-bucket s3://dest-bucket с пользователем в целевой учетной записи.

Push-файлы

Установите политику сегмента в вашем месте назначения, предоставляя права на запись пользователю / роли в исходной учетной записи.

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "Example",
         "Effect": "Allow",
         "Action": [
            "s3:PutObject",
            "s3:PutObjectAcl"
         ],
         "Principal": {
            "AWS": "arn:aws:iam::SOURCE_ACCOUNT:user/SourceAccountUserName"
        },
         "Resource": [
            "arn:aws:s3:::dest-bucket"
         ],
         "Condition": {
            "StringEquals": {
               "s3:x-amz-acl": "bucket-owner-full-control"
            }
         }
      }
   ]
}

Затем вы можете запустить aws s3 sync --acl bucket-owner-full-control s3://source-bucket s3://dest-bucket с пользователем в исходной учетной записи. ВАЖНО Если вы не установите ACL, владелец корзины в целевой учетной записи не сможет получить доступ к объектам, поэтому мы применяем ACL в "Condition".

Вот сообщение AWS об этом: https://aws.amazon.com/es/premiumsupport/knowledge-center/cross-account-access-s3/

...