[レポート] ANT392: Amazon Elastic Serviceにおけるセキュリティ #reinvent
はじめに
本記事はAWS re:Invent Security in Amazon Elasticsearch Service (ANT392) - AWS re:Invent 2018」のレポートです。
Amazon Elasticsearch Service has a rich set of security features that give you control over access to data in your domain. Whether you're using Amazon Cognito to integrate with your federated identity provider for a Kibana login, building a VPC application and integrating search, or using IAM for fine-grained access, you need to understand your options so you can keep your data safe. Leave this session with a practical set of tools for security.
スピーカー
Carl Meadows - Principal Product Manager, Amazon Web Services
レポート
セキュリティの基本
AWSのセキュリティ責務
- ユーザーのドメイン内のインスタンスだけにアクセスだけを許可する専用サービスVPCの作成
- インスタンスへのセキュリティパッチ適用
- Amazon Route5 53 経由のドメインと関連づけられたDNS nameのためのDDosプロテクション
- 9200、9300ポートのブロック
- AWSのセキュアなネットワーク上でのビルド
ユーザーのセキュリティ責務
- 認証計画の決定
- IAM
- Amazon VPC
- キーのロールとIAMポリシーの検証もしくはESとのインタラクションをサポートするネットワークインフラストラクチャの作成
- AWSリソースへのIAMポリシーとセキュリティグループの適2018」のレポートです。
セキュリティの全体像
- ユーザーはエンドポイントと接続し、エンドポイントはDNSによって解決される
- KibanaのためのAmazon Cognito認証と外部ID
- ユーザのIPアドレス空間へのアクセスを制限するためのVPC
- アクセスコントロールのためのIAM
- 暗号化のためのKMS
- ノード間の暗号化オプション
IAMポリシー
パブリックなエンドポイントはIAMポリシーを排他的に使う。
ポリシー1(アクセス時に署名を求める)
ポリシー2(IPベースのコントロール)
ポリシー3(異なるロールでのアクセス:管理者)
アプリケーションへのアクセス要件はロールごとに異なる。
ポリシー4(異なるロールでのアクセス:DevOps)
DevOpsのためにES自体のAPIコールを許容する。
ポリシー5(異なるロールでのアクセス:読み取り専用)
アプリケーションやその他の制限されたアクセスのため、読み取り専用のポリシーを設定する。
IDベースポリシーとリソースベースのポリシーの関係
リソースベースで許容 | リソースベースで拒否 | リソースベースで未定義 | |
---|---|---|---|
IDベースで許容 | 許容 | 拒否 | 許容 |
IDベースで拒否 | 拒否 | 拒否 | 拒否 |
IDベースで未定義 | 許容 | 拒否 | 拒否 |
拒否が常に優先され、未定義はデフォルトで拒否となる。
Amazon VPCのアクセスコントロール
プライベートエンドポイントはセキュリティーグループの恩恵を受けられる
ユーザのVPC内のESアーキテクチャ
単純なVPCアクセス
- インターネットゲートウェイはサブネット内でユーザー、検索、トラフィックのモニタリングへのアクセスを提供する。
- セキュリティグループは一般的なインバウンド/アウトバウンドのルールを定義
- IPはセキュリティグループ内にあるので、SigV4の署名は不要
- IAMはIPベースもしくは署名リクエストで、追加のセキュリティを提供
VPCにおけるロギングのインフラストラクチャ
- 監視するインフラにLogstashを配置する
- インデクサのオートスケーリンググループをまたいで、まとめてESに転送する
- VPC内のリバースプロキシを使って、KibanaのトラフィックをESに転送する
KibanaのサインインのためにAmazon Cognitoを使う
- ドメインのエンドポイントに認可されたユーザを追加する
- Amazon Cognitoにアクセスコントロールのためのユーザとロールを作成
- フェデレーテッドユーザーをサポート
保存されたデータの暗号化
- ドメイン作成時に暗号化を有効にできる
- 暗号化されたデータはエフェメラルもしくはEBSに保存される
- 自動バックアップ
ノード間の暗号化
- 9月に発表された新機能
- TLS1.2もしくはドメイン特有の認証を使った専用VPC内の全てのトラフィックの暗号化
- 自動で管理され、設定不要
- 全てのデータがHTTPSで送信されたことを保証
まとめ
- Amazon Elastic Serviceはアクセスコントロールのために多くのポイントを提供
- IAMポリシーが中心
- Kibanaのサインインのために、IPもしくは署名されたリクエストによるアクセスコントロールができる