Compute@Edge ログストリーミング: HTTPS
最終更新日 2022-05-31
Fastly の Compute@Edge サービスのリアルタイムログストリーミング機能では、ログファイルを HTTPS エンドポイントに送信することができます。
注意
Fastly ではサードパーティのサービスに関する直接のサポートは行っておりません。詳細については、Fastly サービスの利用規約をご参照ください。
前提条件
HTTPS エンドポイントにログを送信する際、Fastly は、周知のパスで、HTTP チャレンジを使用して、URL 欄に指定されたドメイン名を管理していることを証明する必要があります。例えば、URL フィールドが foo.example.com/some/log/path
の場合、以下のチャレンジパスは、200レスポンスを送信しなければなりません。
foo.example.com/.well-known/fastly/logging/challenge
レスポンスには、Fastly サービス ID の SHA-256 の 16 進表記を含める必要があり、それはレスポンスの中の独立した行に表示されなければなりません。例:
1$ sha256sum <SERVICEID>2
3ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c
複数のサービス ID を使用する場合は、そのチャレンジボディに複数の 16 進法の (sha256) 行を追加することができます。また、行内でアスタリスク (*
) を使用すると、任意のサービスが HTTP エンドポイントに投稿できるようになります。例:
1ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c206ae6402e02a9dad74edc71aa69c77c5747e553b0840bfc56feb7e65b23f0f613*
ログエンドポイントとして HTTPS を追加する
次の指示に従って、ログエンドポイントとして HTTPS を追加してください。
- Rust、AssemblyScript、および JavaScript で書かれた Compute@Edge コードでログ記録を実行する方法に関する詳細については Fastly の開発者向けドキュメントをご覧ください。
- HTTPS Create endpoint ボタンをクリックしてください。Create an HTTPS endpoint ページが表示されます。
- Create an HTTPS endpoint フィールドに次のように入力します。
- Name フィールドに、Compute@Edge コードに指定した名前を入力します。例えば、Rust コードの例では、名前は
my_endpoint_name
です。 - URL フィールドに、ログデータの送信先となる URL を入力します (例:
https://logs.example.com/
)。 - Maximum logs フィールドには、バッチとして送信するログの最大数をオプションで入力します。
- Maximum bytes フィールドには、 ログバッチの最大サイズをオプションで入力します。
- Name フィールドに、Compute@Edge コードに指定した名前を入力します。例えば、Rust コードの例では、名前は
- Create an HTTPS endpoint ページの Advanced options リンクをクリックします。Advanced options が表示されます。
- Create an HTTPS endpoint ページの Advanced options に次のように入力します。
- Content type フィールドには、ログを送信する際に使用するコンテンツタイプを任意で入力します (例:
application/json
)。 - Custom header name フィールドには、ログを送信する際に使用するカスタムヘッダーを任意で入力します (例:
Authorization
)。 - Custom header value フィールドには、ログを送信する際に使用するカスタムヘッダー値を任意で入力します (例:
Bearer <token>
)。 - Method エリアにて、適切な HTTP 方式を任意で選択します。
- JSON log entry format エリアにて、適切なログエントリー形式を選択します。JSON log entry format は、有効な JSON フォーマットを強制するものです。Array of JSON を選択すると、JSON のログバッチを配列でラップします。Newline delimited を選択すると、各 JSON ログエントリーをバッチ内の新しい行に配置します。
- Select a log line format のセクションで、ログメッセージのログライン形式を選択します。詳細については、ログライン形式の変更に関するガイドをご覧ください。
- Content type フィールドには、ログを送信する際に使用するコンテンツタイプを任意で入力します (例:
- Advanced options エリアの Using your own certificate authority (CA) セクションに次のように記入します。
- TLS Hostname フィールドには、ログエンドポイントサーバーの証明書を検証するホスト名を任意で入力します。コモンネーム(CN)またはサブジェクト代替名(SAN)のどちらかを入力してください。このフィールドは、Use TLS メニューから Yes を選択した場合にのみ表示されます。
- TLS CA certificate フィールドには、ログエンドポイントサーバーの証明書が有効であることを確認するために使用する認証機関 (CA) の証明書を任意でコピー&ペーストしてください。アップロードする証明書は PEM 形式である必要があります。周知の認証機関によって署名されてない場合には、証明書のアップロードを熟慮してください。TLS 証明書が周知の機関によって署名されていれば、必要ありません。このフィールドは、Use TLS メニューから Yes を選択した場合にのみ表示されます。
- TLS client certificate フィールドには、ログエンドポイントサーバーへの認証に使用する TLS クライアント証明書を任意でコピー&ペーストしてください。アップロードする TLS クライアント証明書は、PEM 形式で、クライアントキーを添付する必要があります。TLS クライアント証明書により、Fastly が接続を実行していることをログエンドポイントサーバーが認証できるようになります。このフィールドは、Use TLS メニューから Yes を選択した場合にのみ表示されます。
- TLS client key フィールドには、ログエンドポイントサーバーへの認証に使用する TLS クライアントキーを任意でコピー&ペーストしてください。アップロードする TLS クライアントキーは、PEM 形式で、TLS クライアント証明書を添付する必要があります。TLS クライアントキーにより、Fastly が接続を実行していることをログエンドポイントサーバーが認証できるようになります。このフィールドは、Use TLS メニューから Yes を選択した場合にのみ表示されます。
- Create ボタンをクリックすると、新しいログエンドポイントが作成されます。
- Activate ボタンをクリックして設定変更をデプロイします。
ファイアウォールへの考慮事項
HTTPS エンドポイントのセキュリティ機能には制限があります。そのため、HTTP エンドポイントサーバーにファイアウォールを作成し、設定したポートでは Fastly のアドレスブロックからの TCP トラフィックのみを受け入れるようにすることをお勧めします。Fastly の IP アドレスブロックのリストは動的なので、可能な限りプログラムから取得することをお勧めします。