私はパブリックバケット内のオブジェクトをプライベート化し、バケット内の他のオブジェクトではなく、オブジェクトへのアクセスを制限するつもりです。また、CloudFrontをセットアップして、署名付きURLでコンテンツを提供したいと思います。 AWS S3ドキュメントで、2つの異なる用語が表示されます。1つはプライベートオブジェクトにアクセスするための事前署名付きURLであり、もう1つはプライベートキーなどをダウンロードしてさらに何かを行う必要がある署名付きURLです。
署名済みURLと署名付きURLの違いは何ですか? CloudFrontで
PreSigned
URLを使用できますか?
C#
ライブラリにはメソッドGetPreSignedURL
があり、秘密鍵などを自動的にダウンロードして署名しますか、またはこのGetPreSignedURL
メソッドはS3 URL署名とは異なり、秘密鍵を設定してからURLに署名する必要がありますか?
から AWS docs
事前署名付きURLは、事前署名付きURLの作成者がそのオブジェクトにアクセスする権限を持っている場合、URLで識別されるオブジェクトへのアクセスを提供します。つまり、オブジェクトをアップロードするための事前署名付きURLを受け取った場合、事前署名付きURLの作成者がそのオブジェクトをアップロードするために必要な権限を持っている場合にのみ、オブジェクトをアップロードできます。
繰り返しますが、 AWS docs から
署名付きURLには、コンテンツへのアクセスをより詳細に制御できる、有効期限などの追加情報が含まれています。この追加情報は、既定のポリシーまたはカスタムポリシーに基づくポリシーステートメントに表示されます。既定ポリシーとカスタムポリシーの違いについては、次の2つのセクションで説明します。
申し訳ありませんが、この答えは本当に悪い答えだったので、チャイムを入れます。
最初に、ここで言及し、参照しているサービスを区別する必要があります。 S3とCloudFrontには、それぞれ異なる動作をするURL署名機能があります。
ただし、S3のみがそれらを事前署名付きURLとして参照しますCloudFrontはそれらを署名付きURLおよび署名付きCookieとして参照します。
以下のドキュメントのURLのサービス名に注意してください。
https://docs.aws.Amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html
さまざまなサービスの詳細な比較については、以下のリンクを確認してください。推測する必要がある場合は、混乱を避けるために、AWSが署名サービスに別の名前を付けることを選択したと思います。
これまでのところ、私の研究:
事前署名付きURL( AWS doc ):事前署名付きURLの作成者がそのオブジェクトにアクセスする権限を持っている場合、URLで識別されるオブジェクトにアクセスできます。つまり、オブジェクトをアップロードするための事前署名付きURLを受け取った場合、事前署名付きURLの作成者がそのオブジェクトをアップロードするために必要な権限を持っている場合にのみ、オブジェクトをアップロードできます。
デフォルトでは、すべてのオブジェクトとバケットはプライベートです。事前署名付きURLは、ユーザー/顧客が特定のオブジェクトをバケットにアップロードできるようにしたいが、AWSのセキュリティ認証情報やアクセス許可を必要としない場合に役立ちます。署名付きURLを作成するときは、セキュリティ認証情報を提供してから、バケット名、オブジェクトキー、HTTPメソッド(オブジェクトをアップロードするためのPUT)、および有効期限の日時を指定する必要があります。署名済みURLは、指定された期間のみ有効です。
署名付きURL( AWS doc ):署名付きURLには、有効期限の日時などの追加情報が含まれ、コンテンツへのアクセスをより詳細に制御できます。この追加情報は、既定のポリシーまたはカスタムポリシーに基づくポリシーステートメントに表示されます。既定ポリシーとカスタムポリシーの違いについては、次の2つのセクションで説明します。
私の理解に基づく結論:
作成者に使用される事前に署名されたURLは、新しいオブジェクトをアップロードすることを意味します。
既存のオブジェクトへのアクセスに関するすべての署名付きURL。