Skip to content

CloudFrontの署名付きURLの仕組み

CloudFrontの署名付きURLは、特定のユーザーやクライアントに制限された期間内でコンテンツへのアクセスを許可するためのデジタル署名を使用しています。以下に、詳細な仕組みを説明します。

1. 秘密鍵と公開鍵の生成

生成者:AWSのIAM(Identity and Access Management)で管理者が鍵ペア(公開鍵と秘密鍵)を生成します。 ストア場所: 秘密鍵:管理者が安全な場所に保存します(例えば、オンプレミスの安全なサーバーやAWS Secrets Managerなど)。 公開鍵:AWSのIAMに保存され、CloudFrontディストリビューションに関連付けられます。

2. 署名付きURLの生成プロセス

ポリシーの作成:

管理者は、リソースのURL、有効期限、許可されたIPアドレスなどの条件を含むポリシーを作成します。 ポリシーのハッシュ化:

ポリシーをハッシュ関数でハッシュ値に変換します。 秘密鍵で署名:

ハッシュ値を秘密鍵を使ってデジタル署名を生成します。 署名の付加:

生成された署名、キーID、有効期限などをURLに付加します。これが署名付きURLです。

3. 署名の検証プロセス

クライアントからのリクエスト:

クライアントが署名付きURLを使用してリクエストを行います。 CloudFrontによる検証:

CloudFrontは公開鍵を使用して署名を検証し、ポリシーに基づいてリクエストが有効かどうかを判断します。 アクセス許可:

署名が正しく、有効期限内であれば、CloudFrontはリクエストを許可します。 マーメイドのシーケンス図 以下のシーケンス図は、CloudFrontの署名付きURLの生成および検証プロセスを視覚化したものです。

sequenceDiagram
    participant Admin as 管理者
    participant IAM as AWS IAM
    participant CF as CloudFront
    participant Client as クライアント

    Admin->>IAM: 公開鍵と秘密鍵を生成
    Admin->>Admin: 秘密鍵を安全に保管
    IAM->>CF: 公開鍵を保存

    Admin->>Admin: ポリシーを作成
    Admin->>Admin: ポリシーをハッシュ化
    Admin->>Admin: 秘密鍵でポリシーに署名
    Admin->>Client: 署名付きURLを提供

    Client->>CF: 署名付きURLでリクエスト
    CF->>IAM: 公開鍵で署名を検証
    CF->>CF: ポリシーの検証
    CF->>Client: リクエストを許可