2016-03-01 1 views
0

Bonjour J'essaye d'écrire la politique d'autorisation pour accéder à mon compartiment.Stratégie de compartiment s3 pour ajouter une exception

Je souhaite refuser l'accès à un agent utilisateur particulier et autoriser l'accès à tous les autres agents utilisateur. Avec la politique ci-dessous, l'accès est refusé à tous.

{ 
    "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/*" 
      ] 
     } 
    ] 
} 

S'il vous plaît laissez-moi savoir comment dois-je écrire la politique telle sorte que l'exception d'un agent utilisateur tous les autres sont en mesure d'accéder à la même chose.

Répondre

0

Il doit être écrit de cette façon!

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

Cette solution fonctionne si les objets du compartiment ne sont pas en lecture/écriture publique. Une réponse est here: Deny access to user agent to access a bucket in AWS S3

+1

Soyez prudent - vous accordez le contrôle COMPLET de vos compartiments Amazon S3 à tout le monde (à condition qu'ils n'utilisent pas NSPlayer). Cela signifie qu'ils peuvent télécharger, télécharger et supprimer vos données. Il est plus sûr d'accorder uniquement l'accès aux appels d'API et aux compartiments nécessaires à vos utilisateurs - et pas plus. Un moyen serait d'accorder l'accès à S3 via des stratégies normales, puis utilisez votre politique ci-dessus avec un "Like" et "DENY" pour refuser spécifiquement l'accès NSPlayer. –

+0

vous commentez est utile .. Pourriez-vous s'il vous plaît modifier la réponse correctement afin que d'autres ont également compris quand ils voient la réponse! –

+0

Comment donnons-nous seulement des permissions aux appels d'api seulement. Pourriez-vous s'il vous plaît une autre réponse correcte qui va m'aider? –