2017-07-24 7 views
0

J'ai créé un utilisateur appelé user1 et un rôle appelé s3limitedaccess et attaché cette politique de compartiment ci-dessous. Crée une clé d'accès et une clé secrète pour cet utilisateur, mais ne peut pas amener cet utilisateur à voir ce compartiment ou à faire quoi que ce soit avec lui. S'il vous plaît quelqu'un peut conseiller. MerciVous ne savez pas pourquoi cette stratégie de compartiment aws s3 ne fonctionne pas?

code:

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

Répondre

0

Si vous souhaitez attribuer des autorisations à un utilisateur spécifique IAM, groupe IAM ou IAM rôle, vous devez attribuer les autorisations directement contre cet utilisateur/groupe/Rôle dans les IAM plutôt que de créer une stratégie de compartiment. (Cela pourrait être ce que vous avez fait, mais vous avez mentionné « la politique du seau » donc on ne sait pas.)

Certains appels API Amazon S3 fonctionnent au niveau du godet (par exemple, la liste du seau) et certains fonctionnent au niveau objet (par exemple GetObject). Par conséquent, vous auriez besoin d'une politique qui donne accès à la fois:

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

L'utilisateur IAM à la politique ci-dessus devrait alors être en mesure d'accéder au seau. Par exemple, en utilisant le AWS Command-Line Interface (CLI):

aws s3 ls s3://rscexternal 

Si vous souhaitez que l'utilisateur pour pouvoir utiliser Amazon S3 via la console de gestion, autorisations supplémentaires sont nécessaires.

De Policy for Console Access:

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

brillant. Merci ça fonctionne maintenant. –