[レポート] ANT392: Amazon Elastic Serviceにおけるセキュリティ #reinvent

Amazon Elasticsearchのセキュリティに関するセッションレポートです。 基本的なIAMでのアクセスコントロールや、KibanaのアクセスコントロールのためにAmazon Cognitoを使うケースの紹介がありました。
2018.11.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

本記事は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もしくは署名されたリクエストによるアクセスコントロールができる