web-dev-qa-db-fra.com

Comment définir le principal pour une déclaration de stratégie AWS?

Je commence à partir de http://awspolicygen.s3.amazonaws.com/policygen.html pour créer une stratégie qui octroiera des droits de téléchargement sur un compartiment S3 spécifique pour une liste d'utilisateurs. Je ne comprends pas bien comment définir ces utilisateurs.

Les documents font référence à un commettant comme "une personne ou des personnes" sans un exemple de la manière de se référer à cette personne. On suppose "adresse électronique" et le générateur de règles l'accepte, mais lorsque je colle l'instruction générée dans l'éditeur de règles de compartiment, je reçois:

Principal non valide dans la stratégie - "AWS": "[email protected]"

Déclaration complète:

{
  "Id": "myPol",
  "Statement": [
    {
      "Sid": "Stmt130",
      "Action": "s3:*",
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::myBucketName",
      "Principal": {
        "AWS": [
          "[email protected]"
        ]
      }
    } ]
}
19
justSteve

Un principal peut être un autre compte AWS ou un utilisateur IAM. Ces documents sont utiles Spécification des principes dans les stratégies de compartiment et Intégration d'IAM avec S3

15
cordsen
[HttpPost]
public ActionResult Uploaddemo(HttpPostedFileBase file) {
    try {
        IAmazonS3 client;
        using (client = Amazon.AWSClientFactory.CreateAmazonS3Client(_awsAccessKey, _awsSecretKey,RegionEndpoint.USWest2)) {
            var request = new PutObjectRequest() {
                BucketName = _bucketName,
                CannedACL = S3CannedACL.PublicRead, ACCESIBLE
                Key = string.Format("visumes/{0}", file.FileName),
                InputStream = file.InputStream,//SEND THE FILE STREAM
            };

            Amazon.S3.AmazonS3Config s3Config = new Amazon.S3.AmazonS3Config() { 
                ServiceURL = "http://s3.amazonaws.com"  
            };
            string Host ="http://s3-website-us-west-2.amazonaws.com";
            client.PutObject(request);
        }
    } catch (Exception ex) {

    }
    return View();
}
0
Dharmendra