ELB のセキュリティとコンプライアンス
Elastic Load Balancing (ELB) は、アプリケーションの可用性と耐障害性を高める上で重要な役割を果たすサービスです。本記事では、ELB を安全に運用し、コンプライアンス要件を満たすためのベストプラクティスについて詳しく解説します。
AWS 責任共有モデルの適用
AWS 環境におけるセキュリティは、AWS とお客様の間で分担される共同責任であり、責任共有モデルとして定義されています。
「クラウドのセキュリティ」- AWS の責任
AWS の責任範囲には以下が含まれます:
- グローバルインフラストラクチャ: ELB が動作する基盤となるハードウェア、ソフトウェア、ネットワーキング、および施設の保護
- サービス提供: お客様が安全に使用できるサービス自体の提供
- コンプライアンス検証: 第三者機関によるセキュリティの有効性テストおよび検証を定期的に実施
「クラウド内のセキュリティ」- お客様の責任
お客様の責任範囲には以下が含まれます:
- サービス設定: ELB サービスの設定と管理
- データ管理: データの機密性、会社の要件への対応
- 法的要件: 適用される法律や規制への準拠
- その他の要因: セキュリティおよびコンプライアンスの目標に合致した運用
このモデルを理解することは、ELB をセキュリティおよびコンプライアンスの目標に合致させる上で不可欠です。
データ保護の原則と推奨事項
ELB におけるデータ保護は、責任共有モデルに従います。お客様は、このインフラストラクチャでホストされるコンテンツの管理を維持し、使用する AWS サービスのセキュリティ設定および管理タスクに責任を負います。
認証情報とアクセス管理の保護
基本的な認証情報管理
- AWS アカウント保護: アカウントの認証情報を適切に保護
- 個別ユーザー管理: AWS IAM Identity Center または AWS Identity and Access Management (IAM) を使用した個々のユーザーの設定
- 最小権限の原則: 各ユーザーには職務遂行に必要な最小限の権限のみを付与
多要素認証(MFA)の実装
すべての AWS アカウントで多要素認証(MFA)を使用することが強く推奨されます。MFA はアカウントのセキュリティを大幅に強化します。
通信のセキュリティ
SSL/TLS の使用
- 必須要件: AWS リソースとの通信にはSSL/TLS の使用が推奨
- バージョン要件: TLS 1.2 が必須であり、TLS 1.3 が推奨
- FIPS 対応: FIPS 140-3 検証済み暗号モジュールが必要な場合は、FIPS エンドポイントを使用
API およびCLI アクセス
コマンドラインインターフェイス(CLI)や API を介して AWS にアクセスする際の適切なエンドポイントの使用が重要です。
ログ記録とモニタリング
AWS CloudTrail の設定
AWS CloudTrail で API およびユーザーアクティビティのログ記録を設定することが重要です。
CloudTrail の機能
- API 呼び出し記録: ELB の API 呼び出しをイベントとしてキャプチャ
- 詳細情報: リクエスト元、IP アドレス、日時などの詳細情報を提供
- マルチリージョン対応: 証跡を作成することで、アカウント内のすべてのアクティビティをキャプチャ
監査とコンプライアンス
継続的な監視と記録により、セキュリティインシデントの早期発見と対応が可能になります。
保管時の暗号化
ELB アクセスログの暗号化
ELB アクセスログの S3 バケットでは、Amazon S3 管理の暗号化キーによるサーバー側暗号化(SSE-S3)を有効にすることで、保管中のデータが保護されます。
暗号化の仕組み
- 自動暗号化: ELB はアクセスログファイルを S3 バケットに保存する前に自動的に暗号化
- 自動復号化: アクセス時に自動的に復号化
- 一意キー: 各ログファイルは一意のキーで暗号化
- キー管理: キー自体も定期的に更新される KMS キーで暗号化
機密情報の取り扱い
推奨される取り扱い
お客様の E メールアドレスなどの極秘または機密情報を、タグや「名前」フィールドなどの自由形式のテキストフィールドに含めないことが強く推奨されます。
理由と注意事項
- 請求データ: これらのデータは請求に使用される可能性
- 診断ログ: 診断ログに含まれる可能性
- URL 認証情報: 外部サーバーに URL を提供する場合は、認証情報を URL に含めないこと
転送中の暗号化
ELB は、ロードバランサーで HTTPS および TLS トラフィックを終端することで、セキュアなウェブアプリケーションの構築プロセスを簡素化します。
TLS 終端の利点
処理負荷の軽減
- 暗号化処理: ロードバランサーがトラフィックの暗号化と復号化の作業を実行
- インスタンス軽減: 各 EC2 インスタンスに TLS 終端処理を要求する必要がなくなる
- パフォーマンス向上: バックエンドリソースがアプリケーション処理に集中可能
管理の簡素化
セキュリティリスナーの一元管理により、証明書とセキュリティポリシーの管理が効率化されます。
セキュリティリスナーの設定
暗号化設定
セキュアリスナーを設定する際には、アプリケーションでサポートされている暗号スイートとプロトコルバージョンを指定します。
証明書管理
サーバー証明書は、AWS Certificate Manager(ACM)または IAM を使用して管理できます。
- ACM: 証明書の自動更新と管理
- IAM: 独自の証明書のアップロードと管理
Server Name Indication(SNI)のサポート
複数サイト対応
Server Name Indication(SNI)プロトコルにより、単一のセキュアリスナーで複数の安全なウェブサイトを提供することが可能です。
自動有効化
複数のサーバー証明書をセキュアリスナーに関連付けると、ロードバランサーで SNI が自動的に有効になります。
ロードバランサータイプ別サポート
プロトコルサポート
- Application Load Balancer: HTTPS リスナーをサポート
- Network Load Balancer: TLS リスナーをサポート
- Classic Load Balancer: HTTPS リスナーと TLS リスナーの両方をサポート
IAM(Identity and Access Management)との連携
AWS IAM は、AWS リソースへのアクセスを安全に制御するのに役立つサービスです。
サポートされる IAM 機能
基本的な IAM 機能
ELB は、以下の IAM 機能をサポートします:
- アイデンティティベースのポリシー: ユーザー、グループ、ロールにアタッチされるポリシー
- ポリシーアクション: 特定のアクションの許可・拒否
- ポリシーリソース: 特定のリソースへのアクセス制御
- サービス固有のポリシー条件キー: ELB 固有の条件による詳細制御
- 属性ベースのアクセス制御(ABAC): タグベースのアクセス制御
- 一時的な認証情報: 動的に生成される認証情報
JSON ポリシー管理
IAM ポリシーは JSON ドキュメントとして保存され、プリンシパル(ユーザー、ルートユーザー、ロールセッション)がリクエストを行う際に評価されます。
ELB 固有の条件キー
利用可能な条件キー
ELB 固有の条件キーには以下があります:
elasticloadbalancing:ResourceTag
: リソースタグに基づく制御elasticloadbalancing:ListenerProtocol
: リスナープロトコルに基づく制御elasticloadbalancing:SecurityPolicy
: セキュリティポリシーに基づく制御elasticloadbalancing:Scheme
: スキーム(インターネット向け・内部向け)に基づく制御elasticloadbalancing:Subnet
: サブネットに基づく制御elasticloadbalancing:SecurityGroup
: セキュリティグループに基づく制御
属性ベースのアクセス制御(ABAC)
ABAC の利点
- スケーラビリティ: 急成長する環境に対応
- 管理効率: ポリシー管理が複雑になる状況での効率化
- 柔軟性: タグを使用したアクセス許可の定義
実装方法
タグを使用してアクセス許可を定義する承認戦略により、動的なアクセス制御が可能になります。
一時的な認証情報
使用場面
- コンソール外アクセス: AWS Management Console 以外でのサインイン
- セキュリティ向上: 長期的なアクセスキーの代わりに動的に生成される認証情報を使用
サポートされない IAM 機能
ELB では、以下の IAM 機能はサポートされません:
- リソースベースのポリシー: リソースに直接アタッチされるポリシー
- サービスロール: 特定のサービス用のロール
- ACL(アクセスコントロールリスト): リソースレベルのアクセス制御
サービスにリンクされたロール
自動作成されるロール
ELB は、AWSServiceRoleForElasticLoadBalancing
という名前のサービスにリンクされたロールを使用して、ユーザーに代わって他の AWS サービスを呼び出すために必要なアクセス許可を持ちます。
管理方法
- 自動作成: ロードバランサーまたはターゲットグループの作成時に ELB によって自動的に作成
- 権限管理: IAM 管理者は権限を表示可能だが、編集はできない
- Classic Load Balancer:
AWSElasticLoadLoadBalancingClassicServiceRolePolicy
を使用
リソース作成時のタグ付け
追加の承認要件
リソース作成アクション(例: CreateLoadBalancer
、CreateTargetGroup
)でタグが指定される場合、elasticloadbalancing:AddTags
アクションの追加の承認が必要となります。
明示的な権限
ユーザーにはこのアクションに対する明示的なアクセス権限が必要です。
AWS マネージドポリシー
提供されるポリシー
AWS は以下のマネージドポリシーを提供しています:
ElasticLoadBalancingFullAccess
: フルアクセス権限ElasticLoadBalancingReadOnly
: 読み取り専用アクセス権限
特徴
- 一般的なユースケース: 一般的なユースケースにアクセス許可を割り当て
- AWS 管理: AWS によって管理・更新される
Classic Load Balancer 作成の拒否
制限方法
特定の IAM ポリシーを作成することで、ユーザーが Classic Load Balancer を作成できないように設定できます。
実装方法
- 条件キー活用:
elasticloadbalancing:ListenerProtocol
条件キーを使用 - 拒否ポリシー: 条件キーが null でない場合に
CreateLoadBalancer
アクションを拒否
コンプライアンス検証
ELB は、様々なコンプライアンスプログラムに準拠しており、お客様のコンプライアンス要件を満たすための支援ツールを提供しています。
AWS Artifact
監査レポートの取得
AWS Artifact を通じて、サードパーティーの監査レポートをダウンロードできます。これにより、AWS のコンプライアンス状況を検証できます。
提供される情報
- 監査結果: 第三者による監査結果
- 証明書: 各種コンプライアンス証明書
- レポート: 詳細なコンプライアンスレポート
コンプライアンス支援サービス
AWS Config
- 用途: リソース設定が社内プラクティス、業界ガイドライン、規制にどの程度準拠しているかを評価
- 機能: 設定変更の継続的な監視と評価
AWS Security Hub
- 用途: AWS 環境全体のセキュリティ状態を包括的に把握
- 機能: リソースがセキュリティ業界標準とベストプラクティスに準拠しているかをチェック
Amazon GuardDuty
- 用途: 不審なアクティビティや悪意のあるアクティビティを監視
- 対象: AWS アカウント、ワークロード、コンテナ、データに対する潜在的な脅威を検出
- コンプライアンス: PCI DSS などの侵入検知要件を満たすのに役立つ
AWS Audit Manager
- 用途: AWS の使用状況を継続的に監査
- 機能: リスク管理と規制や業界標準への準拠を簡素化
継続的なコンプライアンス管理
自動化の活用
- 継続的な監視: 自動化されたコンプライアンスチェック
- レポート生成: 定期的なコンプライアンスレポートの自動生成
- アラート: コンプライアンス違反の早期発見
インフラストラクチャセキュリティ
ELB は、AWS のグローバルネットワークセキュリティによって保護されており、お客様の環境のインフラストラクチャセキュリティを強化するための様々な機能を提供します。
グローバルインフラストラクチャ
AWS リージョンとアベイラビリティーゾーン
ELB は、AWS リージョンとアベイラビリティーゾーンを中心に構築されています。
インフラストラクチャ特性
- 低レイテンシー: 最適化されたネットワーク接続
- 高スループット: 大容量データ転送に対応
- 高度な冗長性: 複数の物理的に独立したアベイラビリティーゾーン(AZ)
推奨構成
ロードバランサーは、最も効果的に機能するために、複数の AZ を有効にすることが推奨されます。特に Application Load Balancer では少なくとも2つ以上の AZ が必要です。
ネットワークの隔離
Virtual Private Cloud(VPC)
ELB は、AWS クラウド内の論理的に隔離された独自の領域であるVirtual Private Cloud(VPC)内にデプロイされます。
VPC の利点
- 論理的隔離: 独自のネットワーク環境
- サブネット指定: ロードバランサーノードにサブネットを指定可能
- ネットワーク制御: 詳細なネットワーク設定
スキーム選択
ロードバランサーは、インターネット向けまたは内部向けのいずれかを選択できます。
内部向けロードバランサー
- アクセス制限: VPC へのアクセス権を持つクライアントからのリクエストのみをルーティング
- セキュリティ強化: 外部からの直接アクセスを遮断
プライベート IP 通信
ロードバランサーはプライベート IP アドレスを使用して登録されたターゲットにリクエストを送信するため、ターゲットにパブリック IP アドレスは必要ありません。
ネットワークトラフィックの制御
セキュアなリスナー
クライアントとロードバランサー間の暗号化された通信をサポートするために、セキュアなリスナーを設定します。
セキュリティグループ設定
ロードバランサーのセキュリティグループ
- Application Load Balancer: 特定のクライアントからのトラフィックのみを受け入れるように設定
- Classic Load Balancer: 同様のセキュリティグループ設定
EC2 インスタンスのセキュリティグループ
ロードバランサーからのトラフィックのみを受け入れるように、Amazon EC2 インスタンスのセキュリティグループを設定します。
AWS WAF 統合
Application Load Balancer で AWS WAF を使用して、ウェブアクセスコントロールリスト(ウェブ ACL)のルールに基づいてリクエストを許可またはブロックできます。
WAF の機能
- ルールベース制御: 詳細なアクセス制御ルール
- アプリケーション層保護: L7 レベルでのセキュリティ
- 自動化: 自動的な脅威検知と対応
AWS PrivateLink
VPC エンドポイント
VPC から ELB API へのプライベート接続を確立するために、インターフェイス VPC エンドポイント(com.amazonaws.region.elasticloadbalancing
)を作成できます。
利点
- プライベート接続: インターネットを経由しない API アクセス
- セキュリティ向上: 外部ネットワークへの露出を最小化
- 簡素化: インターネットゲートウェイ、NAT インスタンス、VPN 接続が不要
実装方法
プライベート IP アドレスを使用して ELB API を呼び出すことが可能になります。
セキュリティベストプラクティス
設計段階での考慮事項
多層防御
- 複数のセキュリティレイヤー: ネットワーク、アプリケーション、データレベルでのセキュリティ
- 相互補完: 各レイヤーが他のレイヤーを補完
最小権限の原則
- IAM ポリシー: 必要最小限の権限のみを付与
- 定期的な見直し: 権限の定期的な監査と調整
運用段階での実践
継続的な監視
- CloudTrail: API アクティビティの継続的な記録
- CloudWatch: パフォーマンスとセキュリティメトリクスの監視
- GuardDuty: 異常な活動の検出
証明書管理
- 自動更新: ACM による証明書の自動更新
- 有効期限管理: 証明書の有効期限の事前通知
インシデント対応
準備
- 対応計画: セキュリティインシデント対応計画の策定
- チーム体制: 対応チームの編成と訓練
検出と対応
- 早期検出: 自動化された検出システムの活用
- 迅速な対応: 事前定義された対応手順の実行
まとめ
ELB におけるセキュリティとコンプライアンスは、AWS とお客様がそれぞれの役割を果たす責任共有モデルに基づいています。
主要なセキュリティ要素
- 強力なデータ保護: 保管時と転送時の暗号化
- 転送中の暗号化: TLS 終端による安全な通信
- IAM との綿密な連携: 詳細なアクセス制御
- 包括的なコンプライアンスツール: 継続的なコンプライアンス管理
- 堅牢なインフラストラクチャセキュリティ: 多層防御とネットワーク隔離
継続的な改善
- 定期的な監査: セキュリティ設定の定期的な見直し
- ベストプラクティスの適用: 最新のセキュリティ推奨事項の実装
- トレーニング: チームのセキュリティ意識向上
目標達成
これらのベストプラクティスを適用することで、お客様は以下を実現できます:
- AWS クラウドの最大活用: セキュリティを損なうことなくクラウドの利点を享受
- セキュリティ目標の達成: 組織のセキュリティ要件を満たす
- コンプライアンス要件の遵守: 業界標準や規制要件への適合
- 継続的な改善: 進化する脅威に対する継続的な対応
ELB の包括的なセキュリティ機能とコンプライアンスツールを活用することで、お客様のアプリケーションの安全性と信頼性を高め、ビジネス目標の達成を支援できます。
参考リンク
- AWS 責任共有モデル
- ELB のセキュリティ
- AWS Certificate Manager
- AWS WAF
- AWS CloudTrail
- AWS Config
- AWS Security Hub
- Amazon GuardDuty
関連記事: ELB の動作原理と詳細機能 | ELB ロードバランサーの種類と特性比較