Доступ Amazon S3 для других учетных записей AWS

Я пытаюсь предоставить разрешение доступа для ведомости S3 в учетной записи другой учетной записи.

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

Однако я получаю ошибку Invalid ID.

Ответ 1

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

Скажем, у вас есть:

  • Учетная запись A с Bucket A, которой вы владеете
  • Аккаунт B с Пользователь B, которому вы хотите предоставить доступ

Запросить пользователя B для ARN, связанного с их пользователем IAM. Это можно увидеть в консоли управления IAM, и она будет выглядеть так:

arn:aws:iam::123456789012:user/fred

Затем добавьте команду Bucket Policy в ковш A:

{
    "Version": "2012-10-17",
    "Id": "S3AccessPolicy",
    "Statement": [
        {
            "Sid": "GiveFredAccess",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/fred"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-a",
                "arn:aws:s3:::bucket-a/*"
            ]
        }
    ]
}

Это позволит Fred получить доступ к ведро S3. Это работает для пользователей в одной учетной записи и для пользователей другой учетной записи.

Ответ 2

Вам нужен "канонический идентификатор пользователя". Вы можете узнать об этом здесь.

Чтобы просмотреть свой канонический идентификатор пользователя в качестве пользователя root (консоль)

Войдите в систему как пользователь root, используя свой адрес электронной почты и пароль учетной записи AWS.

... snip...

В правом верхнем углу консоли выберите имя или номер своей учетной записи. Затем выберите Мои учетные данные безопасности.

При необходимости в диалоговом окне выберите "Продолжить учетные данные безопасности". Вы можете выбрать поле рядом с Dont покажите мне это сообщение еще раз, чтобы остановить появление диалогового окна в будущем.

Разверните раздел Идентификаторы учетных записей, чтобы просмотреть свой канонический идентификатор пользователя.

Примечание Если вы не видите раздел "Идентификаторы учетных записей", вы не вошли в систему как пользователь root. Вернитесь к шагу 1 выше. Если у вас нет доступа к учетным данным пользователя root, обратитесь к администратору учетной записи AWS и попросите их получить канонический идентификатор пользователя.

Ответ 3

Для получения канонического идентификатора один из самых простых способов - использовать CLI и выполнить aws s3api list-buckets. Вы получите идентификатор в выходной.

Существуют и другие способы получения канонического идентификатора, которые подробно описаны в документации по aws: https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html.

list-buckets aws docs: https://docs.aws.amazon.com/cli/latest/reference/s3api/list-buckets.html

Ответ 4

Я могу сделать это, используя канонический идентификатор вручную. Но как мы можем сформировать это в облаке? Боролся с этим.