Akamaiの認証機構について
独自の認証機構を持つ Akamai
ゲーム配信など、低遅延が要求されるユースケースで用いられることの多いクラウドサービスAkamai。利用する機会があったが、認証機構が複雑で手を焼いた。今後のためのメモを残しておく。
Akamaiの認証機構
Akamaiでは、主要なAPIや操作の種類によって異なる認証機構が利用されている。一般向けに、Akamaiが提供する認証には以下のものがある。それぞれの目的と用途について簡単に説明する。
1. EdgeGrid認証
- 概要:
- Akamaiの管理系API(Configuration Manager、Purge API、FastDNS、Identity & Access Managementなど)で使用される標準的な認証方式。
- OAuth 1.0aベースのプロトコルで、リクエストの署名を生成して認証する。
- 主な用途:
- キャッシュパージ(CCU API)。
- Akamai設定管理(プロパティマネージャなど)。
- ログ取得(e.g., データストリーム、Cloud Monitor)。
- 特徴:
- リクエストごとにトークンを動的に生成し、署名を含めて送信。
- セキュアな通信を保証。
2. HMAC-SHA256認証
- 概要:
- 主にAkamai NetStorage(コンテンツアップロード、削除、取得)で使用される認証方式。
- アクセスキーと秘密鍵を利用し、リクエストの署名を生成する。
- 主な用途:
- 大容量の静的コンテンツ(画像、動画、JS/CSSファイルなど)のアップロード。
- NetStorage内のファイルの削除や一覧取得。
- 特徴:
- 比較的シンプルな構造で、リクエスト署名を直接ヘッダーに含める形式。
- 長時間実行されるプロセスに適している。
3. Token Authentication (トークン認証)
- 概要:
- 配信中のコンテンツへのアクセスを制御するために利用される、URLベースのトークン認証。
- リクエストに埋め込まれたトークンを検証し、アクセスを許可または拒否する。
- 主な用途:
- 動的コンテンツのアクセス制御。
- CDN配信中の動画やファイルのセキュリティを確保。
- 特徴:
- 秘密鍵を元に生成されたトークンをURLに含めて送信。
- 一定期間だけ有効なトークンを発行することで、不正なアクセスを防止。
- Edgeサーバー側でトークンを検証するため、認証サーバーへの通信が不要。
4. Client IP Access Control (クライアントIPベースのアクセス制御)
- 概要:
- クライアントIPアドレスに基づいてアクセス制御を行う方式。
- Akamaiのセキュリティ設定で、特定のIPアドレスやIP範囲のみ許可・拒否するよう設定可能。
- 主な用途:
- セキュアな環境でのみコンテンツを利用可能にする。
- 社内専用コンテンツや限定公開コンテンツの配信。
- 特徴:
- IPリストの管理が必要。
- 認証というよりはアクセス制御の一部として使用。
5. mPulse API Key
- 概要:
- Akamai mPulse(リアルユーザー監視)用のデータ取得や操作で使用されるAPIキー。
- 固定のキーを使用して認証を行う、シンプルな方式。
- 主な用途:
- パフォーマンスモニタリングデータの取得。
- アプリケーションパフォーマンスに関するレポート作成。
- 特徴:
- APIキーのみで認証される。
- 高度なセキュリティ要件が不要なシナリオで利用。
6. Akamai Identity Cloud (OAuth 2.0)
- 概要:
- Akamai Identity Cloudを利用した認証・認可。
- ユーザー管理やログインフローの一環としてOAuth 2.0を採用。
- 主な用途:
- Akamaiを通じたエンドユーザー認証。
- カスタマーログインやSSO統合。
- 特徴:
- エンドユーザー向けの認証。
- 他のOAuth 2.0プロバイダと同様の使い勝手。
7. Akamai API Gateway認証
- 概要:
- API Gateway経由で提供されるカスタムAPIの認証。
- クライアント証明書、JWT、またはEdgeGrid認証を利用。
- 主な用途:
- Akamaiを介したAPI管理。
- サードパーティAPIの認証と監視。
- 特徴:
- 柔軟な認証方式を選択可能。
- APIトラフィックのセキュリティ向上に利用。
比較表
認証方式 | 用途 | 認証方式の種類 | 特徴 |
---|---|---|---|
EdgeGrid認証 | 管理API、キャッシュパージ、設定管理 | OAuth 1.0a | 動的署名生成。セキュアだがやや複雑。 |
HMAC-SHA256認証 | NetStorage(アップロード/削除など) | HMAC-SHA256 | シンプルで高速。大容量データに適する。 |
Token Authentication | 動的コンテンツのアクセス制御 | URLトークン認証 | Edgeでトークン検証。セッション制御が簡単。 |
Client IP制御 | IPアドレスベースのアクセス制御 | IPホワイトリスト | 簡易的なアクセス制御。 |
mPulse API Key | パフォーマンスモニタリングデータ取得 | 固定のAPIキー | シンプルだがセキュリティ要件が低い。 |
OAuth 2.0認証 | ユーザー認証、SSO | OAuth 2.0 | エンドユーザー向け。柔軟性が高い。 |
API Gateway認証 | カスタムAPI | EdgeGrid、JWT、クライアント証明書など | 柔軟な認証オプションを提供。 |
まとめ
Akamaiでは、用途ごとに異なる認証機構が用意されており、最適な認証方式を選択する必要がある。特にEdgeGrid認証とHMAC-SHA256認証は、管理系APIとNetStorage APIそれぞれに用いられる、利用頻度が高い認証方法だ。
それぞれの具体的なサンプルについては別に記載する。