2012-01-18 8 views
1

私はS3オブジェクトへの読み取り専用アクセスを持つグループを作成し、そのグループ内に新しいユーザーを追加しました。S3 with IAM Policy

ファイルへのURLの理解に問題があります。私はリンクを持って、これまでのように:

https://s3.amazonaws.com/my-bucket/ 

私はそのグループの人々がアクセスを取得できるようにidkeyのいくつかの並べ替えに合格する必要がありますか?それらのパラメータは何ですか、私はどこで値を見つけるのですか?

答えて

2

ファイルにアクセスできるようにするには、バケットを公開し、各オブジェクトのURLにアクセスする必要があります。これらのオブジェクトは、AWS管理コンソールの各オブジェクトのプロパティを確認することで確認できます。このURLを知っている人なら誰でもファイルにアクセスできます。セキュリティを強化するには、ACLを使用してすべてのユーザーの読み取り専用アクセスを制限します。アクセス許可に移動し、「すべてのユーザー」の新しいアクセス許可を追加し、「開く/ダウンロード」チェックボックスのみをオンにします。 少数のユーザーにしかアクセスを制限しない場合は、IAMポリシーを使用する必要があります。 IAMポリシーでは、セキュリティキーと秘密のアクセスキーを取得します。これで、文字列の最後に秘密のアクセスキーを追加してユーザーにアクセスすることはできません。秘密のユーザーキーは "秘密"になりますが、コードでユーザーにPresigned URLを提供することができます。ここにC#の例があります。

private void GetWebUrl() 
     { 
      var request = 
       new GetPreSignedUrlRequest().WithBucketName(your bucketName) 
       .WithKey(Your obj KEY); 
      request.WithExpires(DateTime.Now.Add(new TimeSpan(0, 0, 0, 50)));// Time you want URL to be active for 
      var url = S3.GetPreSignedURL(request); 

     } 

キャッチは、指定された時間だけURLが有効になるようにします。あなたはそれを増やすことができます。 また、上記機能「S3' に私が作成したamazonS3クライアントのインスタンスです:

private AmazonS3Client S3; 
public static AmazonS3Client CreateS3Client() 
     { 

      var appConfig = ConfigurationManager.AppSettings; 
      var accessKeyId = appConfig["AWSAccessKey"]; 
      var secretAccessKeyId = appConfig["AWSSecretKey"]; 
      S3= new AmazonS3Client(accessKeyId, secretAccessKeyId); 
      return S3; 
     } 
0

各IAMユーザは、自分が使用しているS3ツールを使ってセットアップする独自のCertとKeyを所有します。自分のIAM AWSにログインするためのURLと、ログインするための資格情報を教えてください。バケットのURLは同じになります。

0

S3のファイルへのURLは変更されません。

通常、あなたは持っているフォームを使用しません。 https://my-bucket.s3.amazonaws.com/path/to/file.png - ここで、path/to/file.pngはキーです。 (仮想ホスト対応のバケット名を参照)。

問題は、このURLは、要求者が正しい資格情報を持っていないか、バケットが一般に判読可能でない限り、404になります。

このようなURLを使用して、一部のSDKで1回の呼び出しを使用してそのファイルに読み取り専用アクセス権を持つ資格情報で署名すると、誰でも使用できる時間制限付きのURLになります。 URLに署名すると、AWSはURLを構成する権限を持つ人物であるとAWSが認識できるように、いくつかの追加の引数が追加されます。

OR

あなたはAWS APIを使用して、あなたが直接ファイルをダウンロードする必要が資格情報を使用することができます。

あなたの状況によって異なります。

たとえば、ファイルへのリンクを持つWebページを作成するには、ファイルごとに1つの時間制限URLを作成できます。このページは、ユーザーがログインして何らかのIAM資格情報を持っていると、サーバー上のコードによって生成されます。

また、S3レポを管理するツールを作成したい場合は、APIを使用して直接ダウンロード/アップロードするなどがあります。

+0

だから、私は-bucket.s3にリンク...とIAMユーザーの秘密鍵を追加することはできませんし、私が正しく理解していれば、認証されたIAMユーザーが直接リンクを介してオブジェクトにアクセスできる唯一の方法は、S3 APIを使用してファイルを提供するスクリプトを書くことです。 – doremi

関連する問題