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