S3オブジェクトへの読み取り専用アクセス権を持つグループを作成し、そのグループ内に新しいユーザーを追加しました。
ファイルのURLを理解するのに問題があります。私はこれまでのところリンクを持っています:
https://s3.amazonaws.com/my-bucket/
ある種のパスを渡して、そのグループの人々がアクセスできるようにする必要がありid
ますkey
か?それらのパラメータは何ですか?値はどこにありますか?
S3オブジェクトへの読み取り専用アクセス権を持つグループを作成し、そのグループ内に新しいユーザーを追加しました。
ファイルのURLを理解するのに問題があります。私はこれまでのところリンクを持っています:
https://s3.amazonaws.com/my-bucket/
ある種のパスを渡して、そのグループの人々がアクセスできるようにする必要がありid
ますkey
か?それらのパラメータは何ですか?値はどこにありますか?
人々があなたのファイルにアクセスできるようにするには、バケットを公開してから、AWS マネジメント コンソールで各オブジェクトのプロパティをチェックすることで見つけることができる各オブジェクトの URL にアクセスする必要があります。問題は、この URL を知っている人なら誰でもファイルにアクセスできることです。安全性を高めるには、ACL を使用してすべてのユーザーの読み取り専用アクセスを制限します。アクセス許可に移動し、「全員」の新しいアクセス許可を追加し、「開く/ダウンロード」チェックボックスのみをオンにします。アクセスを少数のユーザーのみに制限したい場合は、IAM ポリシーを使用する必要があります。IAM ポリシーを使用すると、セキュリティ キーとシークレット アクセス キーを取得できます。現在、ユーザーにアクセス権を付与するために、文字列の末尾にシークレット アクセス キーを追加することはできません。シークレット ユーザー キーは「SECRET」であることを意図していますが、できることは、コードを使用して署名付き URL をユーザーに提供することです。
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;
}
各IAMユーザーは、使用しているS3toolsを使用してセットアップする独自の証明書とキーを持ちます。IAM AWS accontにログインするためのURLと、ログインするためのクレデンシャルを提供するだけで、準備が整います。バケットのURLは同じになります。
S3 上のファイルへの URL は変更されません。
通常、あなたが持っているフォームを使用するのではなく、 https://my-bucket.s3.amazonaws.com/path/to/file.png - path/to/file.png がキーです。(仮想ホストの互換性のあるバケット名を参照してください)。
問題は、この URL を要求した人が適切な資格情報を持っていないか、バケットが公開されていない限り、この URL が 404 になることです。
そのような URL を取得し、ファイルへの読み取り専用アクセス権を持つ資格情報を使用して (一部の SDK で 1 回の呼び出しを使用して) 署名することができます。これにより、誰でも使用できる時間制限のある URL が作成されます。URL が署名されると、いくつかの追加の引数が追加されるため、AWS は URL を作成した権限のある人物であることがわかります。
また
AWS API を使用し、必要な認証情報を使用してファイルを直接ダウンロードできます。
それはあなたが何をしているかによります。
たとえば、ファイルへのリンクを含む Web ページを作成するには、時間制限付きの URL をファイルごとに 1 つずつ作成できます。このページは、ユーザーがログインし、何らかの IAM 資格情報を持っているときに、サーバー上のコードによって生成されます。
または、S3 リポジトリを管理するツールを作成したい場合は、API を使用して直接ダウンロード/アップロードするだけです。