2013-06-12 2 views
2

Это последующий, но независимый вопрос от AWS s3 bucket policy invalid group principalПолитика группы AWS IAM на ресурсе S3, влияющем на другие группы?

У меня есть 2 группы: Разработчики и сотрудники. Devlopers имеют предварительно сконфигурированную политическую политику «PowerUser». Соавторы имеют следующую групповую политику

{ 
    "Version": "2012-10-17", 
    "Statement":[ 
     { 
     "Effect":"Allow", 
     "Action":[ 
      "s3:ListAllMyBuckets" 
     ], 
     "Resource":"arn:aws:s3:::*" 
     }, 
     { 
     "Effect":"Allow", 
     "Action":[ 
      "s3:ListBucket", 
      "s3:GetBucketLocation" 
     ], 
     "Resource":"arn:aws:s3:::bucket" 
     }, 
     { 
     "Effect":"Allow", 
     "Action":[ 
      "s3:GetObject", 
      "s3:PutObject", 
      "s3:DeleteObject" 
     ], 
     "Resource":"arn:aws:s3:::bucket/*.txt" 
     }   
    ] 
} 

Ковш имеет следующую политику, чтобы запретить загрузку незашифрованных .txt файлов:

{ 
    "Version": "2008-10-17", 
    "Id": "PutObjPolicy", 
    "Statement": [ 
     { 
      "Sid": "DenyUnEncryptedObjectUploads", 
      "Effect": "Deny", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:PutObject", 
      "Resource": "arn:aws:s3:::bucket/*.txt", 
      "Condition": { 
       "StringNotEquals": { 
        "s3:x-amz-server-side-encryption": "AES256" 
       } 
      } 
     } 
    ] 
} 

поведение я ожидаю: группа «Разработчик» может поставить любой тип файла , файлы .txt должны быть зашифрованы, включая создание каталогов. Группа «Collaborator» может помещать, получать и удалять только файлы «.txt», они не могут создавать каталоги.

Поведение, которое я получаю, как и ожидалось для «Разработчика». Поведение «Collaborators» идентично разработчикам, они могут помещать любой файл, когда они должны только иметь возможность добавлять файлы «.txt».

Что я делаю неправильно?

+0

Возможно, разработчик, с которым вы тестируете, принадлежит к обеим группам? – yegor256

+0

Нет, он определенно входит в группу 1 Group, группу разработчиков. Все мои пользователи являются только членами одной группы. – HoaxKey

ответ

0

После большого количества проб и ошибок я попытался выполнить большую часть разрешений на уровне ковша, получил некоторое неожиданное поведение и должен был разделить его как на групповую, так и на групповую политику. Вот моя группа политика «Соавторы»:

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

    ] 
} 

Вот политика ведра, что только позволяет закачивать и удалять файлы «.txt» четыре пользователей в группе „соавтор“:

{ 
    "Version": "2008-10-17", 
    "Id": "PutObjPolicy", 
    "Statement": [ 
     { 
      "Sid": "DenyUnEncryptedObjectUploads", 
      "Effect": "Deny", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:PutObject", 
      "Resource": "arn:aws:s3:::bucket/*.txt", 
      "Condition": { 
       "StringNotEquals": { 
        "s3:x-amz-server-side-encryption": "AES256" 
       } 
      } 
     }, 
     { 
      "Sid": "CelOnly", 
      "Effect": "Deny", 
      "Principal": { 
       "AWS": [ 
        "arn:aws:iam::111122223333:user/collaborator1", 
        "arn:aws:iam::111122223333:user/collaborator2", 
        "arn:aws:iam::111122223333:user/collaborator3", 
        "arn:aws:iam::111122223333:user/collaborator4" 
       ] 
      }, 
      "Action": [ 
       "s3:DeleteObject", 
       "s3:PutObject" 
      ], 
      "NotResource": "arn:aws:s3:::bucket/*.txt" 
     } 
    ] 
} 

Включая s3: GetObject в политике bucket не разрешает загрузку файлов «.txt», поэтому мне пришлось переместить его в групповую политику. Я все еще не уверен, почему так много проб и ошибок, и некоторые из моих других решений, таких как исходный вопрос, не сработали. но, по крайней мере, это ответ на мою проблему.

0

Если вы уверены, что эта политика относится только к группам Collaborators, чем разработчики не должны быть выполнены.

Из вашего родственного вопроса, кажется, вы изначально попробовали политику ведра. У вас по-прежнему применяется политика ведра, которая ограничивает весь ведро файлами * .txt? Попробуйте удалить любую существующую политику ведра.

Смежные вопросы