2016-03-01 5 views
0

Привет Я пытаюсь написать политику разрешений для доступа к моему ведру.Политика s3 bucket для добавления исключения

Я хочу запретить доступ к определенному пользовательскому агенту и разрешить доступ ко всем другим пользовательским агентам. С приведенной ниже политикой доступ получает отказ всем.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1456658595000", 
      "Effect": "Deny", 
      "Action": [ 
       "s3:*" 
      ], 
      "Condition": { 
       "StringLike": { 
        "aws:UserAgent": "NSPlayer" 
       } 
      }, 
      "Resource": [ 
       "arn:aws:s3:::bucket/" 
      ] 
     }, 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::bucket/*" 
      ] 
     } 
    ] 
} 

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

ответ

0

Это должно быть написано так!

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "SID", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Condition": { 
       "StringNotLike": { 
        "aws:UserAgent": "NSPlayer" 
       } 
      }, 
      "Resource": [ 
       "*" 
      ] 
     } 
    ] 
} 

Это решение работает, если объекты ковша не являются общедоступными для чтения/записи. Один связанный ответ: here: Deny access to user agent to access a bucket in AWS S3

+1

Будьте осторожны - вы предоставляете ПОЛНОЕ управление своими ведрами Amazon S3 всем (до тех пор, пока они не используют NSPlayer). Это означает, что они могут загружать, загружать и удалять ваши данные. Безопаснее предоставлять доступ к API-вызовам и ковшим, необходимым для ваших пользователей, и не более того. Один из способов - предоставить доступ к S3 с помощью обычных политик, а затем использовать указанную выше политику с «Like» и «DENY», чтобы специально запретить доступ к NSPlayer. –

+0

ваш комментарий полезен. Не могли бы вы правильно отредактировать ответ, чтобы другие также понимали, когда видят ответ! –

+0

Как предоставить разрешения только для вызовов api. Не могли бы вы получить еще один ответ, который поможет мне? –

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