翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
付録 A: 署名付き URLs AWS のサービス の使用方法
この付録では、署名付き URLs を使用する AWS のサービス および 機能について説明します。この情報には 2 つの目的があります。
-
コントロールを実装するセキュリティエンジニアに、それらのコントロールの考えられる影響に関する情報を提供します。
-
このリスクが URL ログ記録のやり取りに関連している可能性がある状況を認識する。
重要
この付録には、 の完全なリスト AWS のサービス や署名付き URLs。また、カスタムソリューションやサードパーティーソリューションもカバーしていません。
Amazon S3 コンソール
プリンシパル: コンソールユーザー
デフォルトの有効期限: 5 分
免責事項
このセクションでは、Amazon S3 コンソールの現在の動作について説明します。 AWS コンソールの動作は予告なしに変更される可能性があります。
Amazon S3 コンソールでは、オブジェクトのダウンロードとアップロードがサポートされています。 ダウンロードには、有効期限が 300 秒 (5 分) の署名済み URL が使用されます。 URL は、 へのリクエストによって生成されますhttps://<bucket-region>.console.aws.amazon.com/s3/batchOpsServlet-proxy。
このリクエストは、ユーザーがダウンロードボタンをクリックしたときに開始されるため、ダウンロードの明示的なリクエストが発生するまで URL は事前に生成されず、クライアントに送信されません。
アップロードは似ていますが、コンソールが 2 つのリクエストを送信する点が異なります。プリフライト CORS チェックOPTIONSと ですPUT。 どちらのリクエストも同じ署名を使用します。
署名に使用される認証情報は、現在ログインしているユーザーに関連付けられている一時的な認証情報です。これらの一時的な認証情報を取得する方法 に関する詳細は、このガイドの対象外です。
Amazon S3 Object Lambda
プリンシパル: アクセスポイントの発信者
デフォルトの有効期限: 61 秒
注記
2025 年 11 月 7 日現在、S3 Object Lambda は、現在 サービスを使用している既存のお客様および Select AWS Partner Network (APN) パートナーのみが利用できます。S3 Object Lambda に似た機能の詳細については、Amazon S3 Object Lambda の可用性の変更」を参照してください。
Amazon S3 Object LambdainputS3Url) が提供され、サポートするアクセスポイントから元のオブジェクトをダウンロードするために使用できます。
これらの署名付き URLsは、S3 Object Lambda を設定するときに提供される、サポートされている Amazon S3 アクセスポイント用に署名されています。 S3 (これは Object Lambda アクセスポイントとは異なります)。Lambda 関数にバインドされたロールを使用する代わりに、URL は元の発信者の ID を使用して署名され、そのユーザーのアクセス許可は URL の使用時に適用されます。URL に署名付きヘッダーがある場合、Lambda 関数は Amazon S3 への呼び出しにこれらのヘッダーを含める必要があります。
返される署名付き URL の有効期限は 61 秒です (S3 Object Lambda 関数の最大期間より 1 秒長くなります)。生成された URL は、サポートするアクセスポイントでのみ使用できます。S3 Object Lambda アクセスポイントの呼び出し元は、このアクセスポイントにアクセスできる必要があります。条件 を使用して、S3 Object Lambda のコンテキストへのアクセスを制限できます"aws:CalledVia": ["s3-object-lambda.amazonaws.com"]。その条件がサポートするアクセスポイントまたはバケットにアタッチされている場合、ユーザーはサポートするアクセスポイントまたはバケットに直接アクセスできません。
このアプローチの価値は、Lambda 関数に S3 バケットまたはアクセスポイントへのアクセスを許可する必要がないことです。Lambda 関数に関連付けられているロールには WriteGetObjectResponse のアクセス許可が必要ですが、GetObject のアクセス許可は必要ありません。
S3 Object Lambda が署名付き URLs を生成する場合、ネットワーク制限は追加されないため、URL は Lambda 関数の外部で使用できます。ただし、S3 Object Lambda の呼び出し元に対する制限は引き続き適用されます。例えば、Lambda 関数が VPC で実行され、発信者を VPC エンドポイントの使用に制限する場合、署名付き URL を所有しているすべてのユーザーは、その VPC エンドポイントを介して送信する必要があります。 この制限は、SourceIp と VpcSourceIp にも適用されます。
注記
VPC で S3 Object Lambda 関数を使用するには、VPC に WriteGetObjectResponse を呼び出すためのパブリック S3 エンドポイントへのルートが必要です。 これは、VPC エンドポイントを使用するための要件がバケットからデータを取得するリクエストに適用されないことを示すものではありません。
AWS Lambda クロスリージョン CopyObject
プリンシパル: AWS 内部
デフォルトの有効期限: 3600 秒
CopyObject または UploadPartCopy API を使用してコピーする場合 AWS リージョン、Amazon S3 は署名付き URLs内部で使用します。これらの APIsは、 SDKs から直接呼び出すか、 AWS CLI コマンド aws s3api copy-objectおよび から呼び出すことができますaws s3api upload-part。これらの APIs は Amazon S3 レプリケーションには使用されませんが、レプリケート元とレプリケート先が S3 バケットの場合、 コマンドと aws s3 sync コマンドによって AWS CLI aws s3 cp使用されます。また、さまざまな SDK のTransferManager実装でもサポートされています。 AWS SDKs
AWS Lambda GetFunction
プリンシパル: AWS 内部
デフォルトの有効期限: 10 分
AWS Lambda は、Lambda チームが所有している S3 バケットにユーザーバージョンを保存します。 Lambda コンテナにデプロイされたアセットを生成する前に。関数のコードにアクセスする 場合は、 GetFunction API を呼び出します。 この API は Code.Locationで応答します。 には、10 分間有効な署名付き URL が含まれています (この有効期限は現在の動作であり、公開された契約ではありません)。コードが必要ない場合は、 GetFunctionConfiguration、 GetFunctionConcurrency、 と ListTags を使用して、 によって返される他のデータを取得しますGetFunction。
返される URL は、現在ログインしているユーザーの認証情報ではなく、Lambda によってユーザーに代わって署名されます。このため、現在ログインしているユーザーまたはユーザーの一時的なセッション認証情報に適用される条件キー ( などaws:SourceIP) は、生成された URL には適用されません。これは、条件キーが GetFunction のみに適用されるか、ユーザーまたはセッションのすべての AWS API 使用量に適用されるかにかかわらず当てはまります。
Lambda コンソールはGetFunction と返される署名付き URL も使用します。 コンソールは、現在ログインしているユーザーに関連付けられた一時的な認証情報を使用して GetFunction を呼び出します。これらの一時的な認証情報の取得に関する詳細は、このドキュメントの対象外です。
Amazon ECR
プリンシパル: AWS 内部
デフォルトの有効期限: 1 時間
Amazon Elastic Container Registry (Amazon ECR) には GetDownloadUrlForLayer API が用意されています。この API は、1 時間有効な署名付き URL を返し、Amazon ECR イメージからの単一レイヤーのダウンロードをサポートします。ただし、このオペレーションは Amazon ECR プロキシで使用され、イメージのプルとプッシュに一般的にはユーザーが使用しません。
Amazon Redshift Spectrum
プリンシパル: を介して外部スキーマの作成に渡されるロール IAM_ROLE
デフォルトの有効期限: 1 時間
Amazon Redshift Spectrum は内部で署名付き URLs を使用し、署名付き URLs。16 分のs3:signatureAge値を使用できますが、非常に低い値は信頼できません。使用できる最小値は、クエリのタイミングとサイズによって異なります。16 分未満の値は多くのシナリオで機能しますが、テストが必要です。ロールは、Redshift Spectrum によってのみ使用されるように制限できます。Redshift Spectrum は生成URLs を公開しないため、有効期限値が低いという一般的な根拠が軽減されます。
Amazon SageMaker AI Studio
Amazon SageMaker AI Studio は、CreatePresignedDomainUrl と CreatePresignedNotebookInstanceUrl の 2 つの API アクションをサポートしています。ただし、これらの APIs は署名バージョン 4 の署名付き URL 機能には関連していません。これらの APIsは、 authTokenパラメータを使用する URL を作成しますが、標準の Signature Version 4 クエリパラメータはサポートしていません。
authToken は別のメカニズムですが、署名付き URLs。これはクエリ文字列パラメータとして送信され、5 分の有効期限をサポートします。
SageMaker AI はネットワーク制限をサポートしています。sagemaker:CreatePresignedDomainUrl アクションに制限を設定すると、そのアクションは CreatePresignedDomainUrl の呼び出しと、生成された URL の使用の両方に適用されます。URL が有効なネットワークから生成され、無効なネットワークによって送信されると、URL を生成する API コールは成功しますが、URL を送信するリクエストは失敗します。CreatePresignedNotebookInstanceUrl と sagemaker:CreatePresignedNotebookInstanceUrlアクションも同様です。
詳細については、SageMaker AI ドキュメントを参照してください。