AWS S3 GetBucketLifecycleConfiguration отказано в доступе - PullRequest
0 голосов
/ 05 октября 2018

У нас есть 2 счета AWS "A" и "B".Мы настроили S3 bucket в учетной записи «B», и его ACL говорит следующее:

Access To Your Account     List Objects    Write Objects    Read Bucket Permissions    Write Bucket Permissions 
"B"                        "YES"           "YES"            "YES"                       "YES"

Access for other AWS accounts     List Objects    Write Objects    Read Bucket Permissions    Write Bucket Permissions 
"A"                               "YES"           "YES"            "YES"                       "YES"

Теперь я пытаюсь сделать следующее:

aws s3api get-bucket-lifecycle-configuration --bucket <name>

с учетными данными AWS изПользователь в аккаунте «А».Тем не менее, я получаю сообщение об ошибке

An error occurred (AccessDenied) when calling the GetBucketLifecycleConfiguration operation: Access Denied

Но не должны ли все пользователи из учетной записи "A" иметь доступ к корзине?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Когда вы используете ACL для обеспечения доступа к нескольким учетным записям на S3, это единственные разрешения, которые пользователь IAM в учетной записи A унаследует:

  1. put-object, delete-object
  2. list-bucket
  3. get-bucket-acl
  4. put-bucket-acl

Любые вызовы API, выходящие за рамки вышеуказанных 4, приведут к ошибке Access Denied,Если в вашем сценарии использования разрешен полный доступ S3 для пользователя IAM в учетной записи A, вам необходимо выполнить следующие действия:

  1. В белом списке пользователя IAM из учетной записи A должен быть s3: *разрешения на политику корзины в учетной записи B

  2. В политике пользователя IAM учетной записи A убедитесь, что у него есть s3: * или специальные разрешения для корзины, расположенной в учетной записи B.

В качестве альтернативы вы можете предоставить root-доступ к учетной записи A в политике корзины в учетной записи B, после чего разрешения от root могут быть делегированы всем пользователям IAM в учетной записи A.

0 голосов
/ 05 октября 2018

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

Это означает, что вам нужно войти в консоль учетной записи B в качестве администратора и предоставить выбранному пользователю эту встроенную политику (изменить имя корзины):

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Sid": "Example",
         "Effect": "Allow",
         "Action": [
            "s3:*"
         ],
         "Resource": [
            "arn:aws:s3:::MYBUCKETNAME"
         ]
      }
   ]
} 

("s3:*" предоставляет полный доступ, при необходимости вы можете изменить его на более ограниченную политику)

Весь рабочий процесс предоставления таких разрешений описан в Документах AWS * 1012.* пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...