Download Delivery プロパティ prp_xxxx / オリジン: Linode Object Storage(S3互換) → 移行先 FSx for ONTAP S3 Access Point
ブラウザはパスワード認証(Akamai Function)を通過すると Auth Token 2.0 トークン(HttpOnly Cookie __token__)を受け取る。
以降のコンテンツ要求はエッジの Auth Token 2.0 Verification が検証し、合格時のみ Cloud Access Manager の AWS SigV4 署名でプライベート S3 オリジンから取得して配信する。
視聴者認証は Akamai Token Auth(S3 Presigned URL は使わない)。Function への通信は CDN が注入する X-Edge-Auth ヘッダーで CDN 経由に矯正。
__token__ 自動送出Set-Cookie __token__amd_token_key = Property verifyTokenAuthorization.Keyedge_shared_secret = Property 注入 X-Edge-Auth(Function 直アクセスは 404)
st~exp~acl~hmac の HMAC-SHA256 を共有鍵で再計算し、一致・期限・ACL を判定(オリジンにも Function にも問い合わせない)。X-Edge-Auth 必須。エッジがサーバ側で注入するためブラウザには出ず、*.fwf.app 直アクセスは 404。| リクエスト | 応答 |
|---|---|
| 未認証 GET / | 302 → /_auth/login |
| 正パスワード POST /_auth/token | 200 + Set-Cookie __token__ |
| 有効トークンで GET /<file> | 200(origin から配信) |
| 不正 / 期限切れトークン | 403(エッジ拒否) |
| Function 直アクセス(X-Edge-Auth 無) | 404 |
Property — Origin Characteristics / Cloud Access Manager
| 項目 | 設定値 | 備考 |
|---|---|---|
| Authentication Method | Amazon AWS Signature Version 4 | SigV4(S3互換は AWS4_HMAC_SHA256) DD Techdoc ↗ |
| Encrypted Storage | Yes | CAM のキーを参照(平文非保持) |
| Access Key | Cloud Access Manager のキー | Access Key ID + Secret。エッジが署名注入 |
| Region | jp-tyo-1 | → FSx のリージョンに変更 |
| Endpoint Service | s3 | 不変 |
Property — Origin Server
| 項目 | 設定値 |
|---|---|
| Origin Type | Your Origin (CUSTOMER) |
| Origin Hostname | example.<region>.linodeobjects.com → FSx S3 AP alias |
| Forward Host Header | Origin Hostname |
| HTTPS Port / SNI | 443 / originSni = Yes |
制約: third-party cloud 認証では GET / 読取りに akamaized ホスト名を使用、GET と書込みでキーを分離 DD Techdoc ↗
Property — Auth Token 2.0 Verification(verifyTokenAuthorization) DD Techdoc ↗
| 項目 | 設定値 |
|---|---|
| Location | COOKIE |
| Token Location ID | __token__ |
| Algorithm | SHA256 |
| Key | 共有 HMAC 鍵(= Function amd_token_key) |
| Escape HMAC Inputs / Failure Response | Yes / On (403) |
Property — ルーティング(Default Rule の子ルール)
| パス条件 | 挙動 |
|---|---|
| /_auth/* | Origin override → Function / rewrite ^/_auth(.*)→$1 / modifyOutgoingRequestHeader: ADD X-Edge-Auth / token 検証なし |
| __token__ Cookie 無 | redirect 302 → /_auth/login |
| __token__ Cookie 有 | verifyTokenAuthorization |
| / , /_list | / = Function ポータル / /_list = バケット一覧 XML |
| /_arch | Function /arch(本ページ・公開) |
Akamai Function(dd-auth, Spin/Rust)
| 変数 | 用途 |
|---|---|
| live_password_hash | 視聴パスワードの SHA-256 |
| amd_token_key | hdnts 署名鍵(= Property の Key) |
| edge_shared_secret | X-Edge-Auth 検証値(CDN 経由の矯正) |
ルート: GET /login / POST /token(password→hdnts→Set-Cookie)/ GET /(portal)/ GET /arch / GET /logout。全ルートで X-Edge-Auth 必須。
Auth Token 2.0 のトークンは ACL(許可パス)を持ち、発行時にスコープを絞れる。 エッジが 範囲外パスを自動的に 403 で拒否するため、ユーザーごと・コンテンツごとの出し分けができる。 強制はエッジ側で完結(プロパティ・エッジは変更不要、絞り込みは Function のトークン発行ロジックのみ)。
| 方式 | ACL 例 | 用途 |
|---|---|---|
| 全許可(現在) | acl=/* | 認証済みなら全コンテンツ |
| ユーザー別(フォルダ) | acl=/userA/*!/shared/* | ユーザー → 許可プレフィックス群(! 区切り・ワイルドカード可) |
| 単一ファイル(URL トークン) | 対象 URL に限定 | S3 Presigned URL の代替 |
一覧(/_list)も Function でユーザーの許可分にフィルタ。キャッシュキーはパスのみのため、ACL が違っても同一オブジェクトを共有(キャッシュ効率は不変)。
| 層 | 内容 |
|---|---|
| 再利用(不変) | Auth Token 2.0 / Function / ルーティング / 鍵連携 = そのまま |
| 差し替え | Origin Hostname → AP alias / CAM Access Key → FSx の GET 用 IAM キー / Region → FSx リージョン(Endpoint Service=s3 は不変) |
| 要検証 TO VERIFY | S3 Access Point alias ホスト名の SigV4 署名可否 / 静的 IAM キー前提(STS・role ARN は techdoc 未記載)/ akamaized・GET 専用制約 |
凡例: DD Techdoc 公式ドキュメント根拠(リンクは新規タブで開きます) / TO VERIFY トライアルで実証