CloudFront の OAI (Origin Access Identity) と OAC (Origin Access Control) は、
S3 バケットへのアクセスを CloudFront 経由のみに制限するための認証方法です。
OAC は OAI の後継となる新方式です。
🧩 1. OAI(Origin Access Identity)
🔹 概要
- CloudFront から S3 オリジンにアクセスするための仮想ユーザー(IAMのようなもの)
- S3 バケットポリシーで、CloudFront の OAI からのアクセスのみ許可することで、
直接S3へのパブリックアクセスを遮断
✅ 特徴
- 長年使われてきた旧方式(レガシー)
- CloudFront ⇒ S3 の制限に特化
-
署名付きURL/署名付きCookieと併用可能
⚠️ 注意点
-
2022年11月以降、非推奨(Deprecated)
→ 新しい機能(例:Headerベース制御)は非対応
🧩 2. OAC(Origin Access Control)
🔹 概要
- OAIの進化版。より柔軟でセキュアなアクセス制御が可能
- IAMの署名(SigV4)を使用して CloudFront → S3 アクセスを認証
- CloudFrontディストリビューション設定に OAC をアタッチ
✅ 特徴
- より 詳細なアクセス制御(ヘッダー、リクエストタイプなど)
- IAMポリシーと統合可能
-
署名付きリクエスト(SigV4) を使用しセキュア
- 新規構成では OAC 推奨
📌 対応オリジン:
- S3(パブリックURL不可)
- CloudFront Functions や Lambda@Edge と併用可
🆚 OAI vs OAC 比較表
項目 |
OAI |
OAC |
提供時期 |
古い(従来の方式) |
新しい方式(推奨) |
認証方式 |
CloudFront専用ID |
IAMベースのSigV4署名 |
柔軟性 |
低い |
高い(ヘッダー、メソッド対応) |
今後の推奨 |
❌ 非推奨 |
✅ 推奨 |
設定場所 |
CloudFront + S3バケットポリシー |
CloudFront + IAMロール/ポリシー |
🛠️ OAC の設定イメージ(概要)
- CloudFrontディストリビューションで OAC を作成
- OAC に IAMロール・署名設定を定義
- S3バケットのポリシーでその IAM ロールのアクセスのみ許可
🎯 どっちを使えばいい?
シナリオ |
推奨 |
これから新規構築 |
OAC を使用(AWS公式推奨) |
既存環境が OAI を使用している |
すぐの移行は不要だが、段階的に OAC 移行検討 |
複雑な条件での制御(例:ヘッダー付きリクエスト) |
OAC のみ対応 |
✅ まとめ
用語 |
説明 |
OAI |
CloudFrontからS3を守る旧方式。簡単だが機能制限あり |
OAC |
OAIの進化版。IAMベースで柔軟・高セキュリティ。新規はOAC推奨 |