署名付き URL の使用 - Amazon Simple Storage Service

署名付き URL の使用

デフォルトでは、すべてのオブジェクトおよびバケットはプライベートです。ただし、署名付き URL を使用して、オプションでオブジェクトを共有したり、顧客/ユーザーが AWS セキュリティ認証情報またはアクセス許可なしでオブジェクトをバケットにアップロードしたりできます。

署名付き URL 機能の制限

署名付き URL を使用して、S3 バケットにアクセスするために使用できる URL を生成できます。署名付き URL を作成すると、その署名付き URL を特定のアクションに関連付けます。URL を共有でき、URL へのアクセス権を持つユーザーは、URL に埋め込まれたアクションを、元の署名ユーザーであるかのように実行できます。URL は有効期限が切れ、有効期限に達すると機能しなくなります。URL の機能は、署名付き URL を作成したユーザーのアクセス許可によって制限されます。

本質的に、署名付き URL は、それらを所有する顧客へのアクセスを許可するベアラトークンです。そのため、適切に保護することをお勧めします。

署名付き URL の使用と、特定のネットワークパスへのすべての S3 アクセスを制限する場合は、特定のネットワークパスを必要とする AWS Identity and Access Management (IAM) ポリシーを記述できます。これらのポリシーは、呼び出しを作成する IAM プリンシパル、Amazon S3 バケット、またはその両方に設定できます。プリンシパルに対するネットワークパスの制限では、これらの認証情報のユーザーが指定したネットワークから要求を行う必要があります。バケットに対する制限により、そのバケットへのアクセスは、指定されたネットワークからのリクエストにのみ制限されます。これらの制限は、署名付き URL シナリオの外部にも適用されることを認識してください。

使用する IAM グローバル条件は、エンドポイントのタイプによって異なります。Amazon S3 のパブリックエンドポイントを使用している場合は、aws:SourceIp を使用します。Amazon S3 への VPC エンドポイントを使用している場合は、aws:SourceVpc または aws:SourceVpce を使用します。

次の IAM ポリシーステートメントでは、プリンシパルは、指定されたネットワーク範囲からのみ AWS にアクセスする必要があります。このポリシーステートメントでは、すべてのアクセスがその範囲から発信される必要があります。これには、S3 の署名付き URL を使用する場合も含まれます。

{ "Sid": "NetworkRestrictionForIAMPrincipal", "Effect": "Deny", "Action": "", "Resource": "", "Condition": { "NotIpAddressIfExists": { "aws:SourceIp": "IP-address" }, "BoolIfExists": { "aws:ViaAWSService": "false" } } }

署名付き URL を使用してオブジェクトを共有またはアップロードする方法の詳細については、以下のトピックを参照してください。