Amazon OpenSearch Service の保管中のデータの暗号化 - Amazon OpenSearch Service

Amazon OpenSearch Service の保管中のデータの暗号化

OpenSearch Service ドメインでは、保管中のデータの暗号化という、データへの不正アクセスを防止するのに役立つセキュリティ機能が提供されます。この機能は、AWS Key Management Service (AWS KMS) を使用して暗号化キーを保存および管理し、256 ビットキーを使用した Advanced Encryption Standard アルゴリズム (AES-256) を使用して暗号化を実行します。有効にすると、この機能によりドメインの次の要素が暗号化されます。

  • すべてのインデックス (UltraWarmストレージのものを含む)

  • OpenSearch ログ

  • スワップファイル

  • アプリケーションディレクトリのその他すべてのデータ

  • 自動スナップショット

以下は、保管中のデータの暗号化を有効にするときに暗号化されませんが、追加のステップを行って保護することができます。

  • 手動スナップショット: 現在、AWS KMS マスターキーを使用して手動スナップショットを暗号化することはできません。ただし、S3 で管理されたキーまたは KMS キーによるサーバー側の暗号化を使用してスナップショットリポジトリとして使用しているバケットを暗号化できます。手順については、手動スナップショットレポジトリの登録 を参照してください。

  • スローログおよびエラーログ: スローログを発行して暗号化する必要がある場合、OpenSearch Service ドメインと同じ AWS KMS キーを使用してその CloudWatch Logs ロググループを暗号化できます。詳しくは、Amazon CloudWatch Logs ユーザーガイドAWS KMS を使用して CloudWatch Logs のログデータを暗号化するを参照してください。

OpenSearch Service は、対称暗号化 KMS キーのみをサポートしており、非対称暗号化 KMS キーはサポートしていません。KMS マスターキーを作成する方法については、AWS Key Management Service デベロッパーガイドの「キーの作成」を参照してください。

保存時の暗号化が有効になっているかどうかにかかわらず、すべてのドメインは AES-256 または OpenSearch Service 管理キーを使用してカスタムパッケージを自動的に暗号します。

許可

OpenSearch Service コンソールを使用して保管中のデータの暗号化を設定するドメインを作成するためには、次のような ID ベースのポリシーなど、AWS KMS への読み取り専用許可を持っている必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:Describe*" ], "Resource": "*" } ] }

AWS 所有のキー以外のキーを使用する場合、キーの付与を作成するための許可も持っている必要があります。通常、これらの許可は、キーの作成時に指定するリソースベースのポリシーの形式になります。

キーを OpenSearch Service 固有にする場合、キーポリシーに kms:ViaService 条件を追加できます。

"Condition": { "StringEquals": { "kms:ViaService": "es.us-west-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } }

詳細については、AWS Key Management Service デベロッパーガイドの「AWS KMS でキーポリシーを使用する」を参照してください。

保管中のデータの暗号化の有効化

新しいドメインでの保管中のデータの暗号化には OpenSearch または Elasticsearch 5.1 以降が必要です。既存のドメインでそれを有効にするには、OpenSearch または Elasticsearch 6.7 以降が必要です。

保管中のデータの暗号化を有効にするには (コンソール)

  1. AWS コンソールでドメインを開き、次に [アクション] および [セキュリティ設定の編集] を選択します。

  2. 暗号化した状態で、保管中のデータの暗号化を有効にするを選択します。

  3. AWS KMS使用するキーを選択し、次に変更の保存を選択します。

設定 API を使って、暗号化を有効にすることもできます。次のリクエストは、既存ドメインで保存中のデータの暗号化を有効にします。

{ "ClusterConfig":{ "EncryptionAtRestOptions":{ "Enabled": true, "KmsKeyId":"arn:aws:kms:us-east-1:123456789012:alias/my-key" } } }

KMS キーを無効化または削除

ドメインの暗号化に使用したキーを無効化または削除すると、そのドメインにアクセスできなくなります。OpenSearch サービスが、KMS キーにアクセスできないことを通知します。すぐにキーを再度有効にして、ドメインにアクセスします。

キーが削除されると、OpenSearch Service チームはデータを復元することはできません。AWS KMS でキーが削除されるのは 7 日以上の待機期間が経過した後に限られます。キーの削除が保留中の場合は、削除をキャンセルするか、手動スナップショットを取って、ドメインのデータの損失を防ぎます。

保管中のデータの暗号化の無効化

保管中のデータを暗号化するようにドメインを設定した後、設定を無効にすることはできません。代わりに、既存のドメインの手動スナップショットを作成し、別のドメインを作成してからデータを移行して、古いドメインを削除することができます。

保管中のデータを暗号化するドメインのモニタリング

保管中のデータを暗号化するドメインには、KMSKeyErrorKMSKeyInaccessible の 2 つの追加のメトリクスがあります。これらのメトリクスは、ドメインの暗号化キーに問題が発生した場合にのみ表示されます。これらのメトリクスの詳細については、「クラスターメトリクス」を参照してください。OpenSearch Service コンソールまたは Amazon CloudWatch コンソールのいずれかを使用して表示できます。

ヒント

各メトリクスは、ドメインの重大な問題を表しているため、両方の CloudWatch アラームを作成することをお勧めします。詳細については、「Amazon OpenSearch Service で推奨される CloudWatch アラーム」を参照してください。

その他の考慮事項

  • 自動キーローテーションは AWS KMS キーのプロパティを保持するため、このローテーションは OpenSearch データにアクセスする能力には影響しません。暗号化された OpenSearch Service ドメインは、新しいキーの作成と古いキーのすべてのレファレンスの更新を含むマスターキーローテーションをサポートしません。詳細については、AWS Key Management Service デベロッパーガイドの「キーローテーション」を参照してください。

  • 特定のインスタンスタイプは、保管中のデータの暗号化をサポートしていません。詳細については、「」を参照してくださいAmazon OpenSearch Service でサポートされるインスタンスタイプ

  • 保管中のデータを暗号化するドメインでは、自動スナップショット用に別のリポジトリ名を使用します。詳細については、「スナップショットの復元」を参照してください。

  • 静止時に暗号化を有効にすることを強くお勧めしますが、CPU オーバーヘッドが増加し、数ミリ秒の遅延が発生する可能性があります。ただし、ほとんどのユースケースはこれらの違いに敏感ではなく、影響の大きさは、クラスター、クライアント、および使用プロファイルの構成によって異なります。