2011-06-08 5 views
15

私はhttp://awspolicygen.s3.amazonaws.com/policygen.htmlから始めて、特定のS3バケットにユーザーのリストのアップロード権を与えるポリシーを作成します。私はそれらのユーザーが誰であるべきかをどのように定義するかについてはっきりしていません。AWSポリシーステートメントのプリンシパルを定義する方法は?

ドキュメントは、その人物を参照する方法の例がない場合、プリンシパルを「人物」と呼んでいます。一つは、「メールアドレス」と政策・ジェネレータはそれを受け入れるだろうと仮定し、私はバケットポリシーエディタに生成された文を貼り付けるとき、私が取得:

ポリシーに無効な校長 - 「AWS」:「ここに@スティーブ。 comの」

全声明:

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

答えて

13

プリンシパルは別のAWSアカウントまたはIAMユーザーであることができます。発電機は私が手放す前に、私の入力をチェックするために、余分なバリデーションループを取ったかどうかわから素敵だっただろう - これらのドキュメントは、私の誤りであったであろう便利Specifying Principals in Bucket PoliciesIntegrating IAM with S3

+1

です。 – justSteve

0
[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(); 
} 
関連する問題