Предоставить AWS IAM Group доступ к одному сегменту S3 - PullRequest
0 голосов
/ 07 мая 2020

У меня есть поставщик, которому необходимо каждую ночь загружать CSV-файл и ZIP-файл в корзину AWS S3. Ясно, что я не хочу, чтобы они видели / получали доступ к другим моим ведрам. После долгих разговоров с ними, единственный способ sh выполнить эту ночную задачу - применить политику ниже к группе IAM, частью которой является их пользователь:

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

Это очевидно, не идеально, и я действительно хочу, чтобы у их пользователей была гораздо более строгая политика. Я тестировал множество других политик с помощью IAM Policy Simulator , и все они приводили к результату «Запрещено - Неявно отказано (нет соответствующих операторов)» при тестировании для ListBucket и PutObject. Я также удалил из корзины параметр «Заблокировать все publi c доступ», полагая, что он создает неотъемлемый статус Deny.

Некоторые из многих политик, которые я пробовал:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::mybucket/*"
        }
    ]
}

И

 {
   "Version":"2012-10-17",
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "s3:ListBucket"
         ],
         "Resource":"arn:aws:s3:::mybucket"
      },
      {
         "Effect":"Allow",
         "Action":[
            "s3:PutObject",
            "s3:GetObject"
         ],
         "Resource":"arn:aws:s3:::mybucket/*"
      }
   ]
}

И

{  
   "Version": "2012-10-17",  
   "Statement": [  
     {  
       "Effect": "Allow",  
       "Action": [  
             "s3:GetBucketLocation",  
             "s3:ListAllMyBuckets"  
            ],  
       "Resource": "arn:aws:s3:::*"  
     },  
     {  
       "Effect": "Allow",  
       "Action": "s3:*",  
       "Resource": [  
         "arn:aws:s3:::mybucket",  
         "arn:aws:s3:::mybucket/*"  
       ]  
     }  
   ]  
 }

Любая помощь в этом приветствуется. Заранее спасибо за несколько минут вашего времени.

1 Ответ

1 голос
/ 07 мая 2020

Обновление:

Это было подтверждено моим дальнейшим тестированием, а также обширным тестированием моим поставщиком, чтобы работать по мере необходимости.

{  
   "Version": "2012-10-17",  
   "Statement": [  
     {  
       "Effect": "Allow",  
       "Action": [  
             "s3:GetBucketLocation",  
             "s3:ListAllMyBuckets"  
            ],  
       "Resource": "arn:aws:s3:::*"  
     },  
     {  
       "Effect": "Allow",  
       "Action": "s3:*",  
       "Resource": [  
         "arn:aws:s3:::mybucket",  
         "arn:aws:s3:::mybucket/*"  
       ]  
     }  
   ]  
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...