Amazon OpenSearch Serverless での暗号化 - Amazon OpenSearch サービス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon OpenSearch Serverless での暗号化

保管中の暗号化

作成する各 Amazon OpenSearch Serverless コレクションは、保管中のデータの暗号化で保護されます。これは、データへの不正アクセスを防ぐのに役立つセキュリティ機能です。保管時の暗号化では、 AWS Key Management Service (AWS KMS) を使用して暗号化キーを保存および管理します。この暗号化は、256 ビットキーを使用した Advanced Encryption Standard アルゴリズム (AES-256) を使用して実行されます。

暗号化ポリシー

暗号化ポリシーを使用すると、新しく作成され特定の名前またはパターンに一致するコレクションに対し、暗号化キーを自動的に割り当てることができ、多くのコレクションを大規模に管理できます。

暗号化ポリシーを作成する際には、プレフィックスでワイルドカードベースのマッチングルール (MyCollection* など) を指定するか、コレクション名を 1 つ入力します。次に、その名前またはプレフィックスパターンに一致するコレクションを作成すると、ポリシーとそれに対応する KMS キーが、そのコレクションに対し自動的に割り当てられます。

Encryption policy creation process with rules and collection matching to KMS key.

暗号化ポリシーには次の要素が含まれます。

  • Rules – 1 つ以上のコレクションマッチングルール。それぞれに次のサブ要素が含まれます。

    • ResourceType – 現在、選択できるオプションは「collection」のみです。暗号化ポリシーは、コレクションリソースにのみ適用されます。

    • Resource – ポリシーが適用される 1 つ以上のコレクション名またはパターンで、形式は collection/<collection name|pattern> です。

  • AWSOwnedKey – AWS 所有のキーを使用するかどうか。

  • KmsARNAWSOwnedKey に「false」を設定する場合は、KMS キーの Amazon リソースネーム (ARN) を指定して、関連するコレクションを暗号化します。このパラメータを含めると、 OpenSearch Serverless は AWSOwnedKeyパラメータを無視します。

次のポリシー例では、autopartsinventory という名前で詳細作成されるすべてのコレクションと、「sales」という用語で始まるコレクションに対し、カスタマー管理キーを割り当てます。

{ "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ] } ], "AWSOwnedKey":false, "KmsARN":"arn:aws:encryption:us-east-1:123456789012:key/93fd6da4-a317-4c17-bfe9-382b5d988b36" }

ポリシーがコレクション名と一致していても、リソースパターンにワイルドカード (*) が含まれている場合には、コレクションの作成時にこの自動割り当てを上書きすることが可能です。自動キー割り当てを上書きすることを選択した場合、 OpenSearch Serverless は auto-<collection-name > という名前の暗号化ポリシーを作成し、コレクションにアタッチします。このポリシーは、初期状態では 1 つのコレクションにのみ適用されますが、他のコレクションを含めるように変更できます。

コレクションと一致しないようにポリシールールを変更しても、関連する KMS キーのコレクションに対する割り当ては、(自動的に) 解除されません。コレクションの暗号化には、常に初期の暗号化キーが使用されます。コレクションに対し異なる暗号化キーを使用した場合には、コレクションを再作成します。

1 つのコレクションに対し複数のポリシーのルールが一致する場合は、より詳細なルールが使用されます。例えば、あるポリシーに collection/log* のルールが含まれており、もう 1 つのポリシーには collection/logSpecial のルールが含まれている場合には、より詳細である 2 つ目のポリシーの暗号化キーが使用されます。

別のポリシーに既に存在する場合は、ポリシーで名前またはプレフィックスを使用できません。異なる暗号化ポリシーで同じリソースパターンを設定しようとすると、 OpenSearch Serverless はエラーを表示します。

考慮事項

コレクションの暗号化を設定する際には、次の点を考慮してください。

  • すべての Serverless コレクションには、保存時の暗号化が必須です。

  • 使用するキーには、カスタマー管理キーと AWS 所有のキーのオプションがあります。カスタマー管理キーを使用する場合は、自動キーローテーションを有効にすることをお勧めします。

  • コレクションを作成後、そのコレクションの暗号化キーを変更することはできません。コレクションを初めてセットアップするときに AWS KMS 使用する を慎重に選択します。

  • コレクションに適合できるのは、単一の暗号化ポリシーのみです。

  • 一意の KMS キーを持つコレクションは、 OpenSearch コンピューティングユニット (OCUs他のコレクションと共有できません。ユニークなキーを持つ各コレクションには、それぞれ独自に 4 OCU が必要です。

  • 暗号化ポリシーの KMS キーを更新しても、その変更は KMS キーが既に割り当てられている、既存の一致するコレクションには影響しません。

  • OpenSearch サーバーレスは、カスタマーマネージドキーに対するユーザーアクセス許可を明示的にチェックしません。データアクセスポリシーを通じてコレクションにアクセスする許可が付与されたユーザーは、関連付けられたキーで暗号化されたデータを、取り込んだりクエリできます。

必要なアクセス許可

OpenSearch Serverless の保管時の暗号化では、次の AWS Identity and Access Management (IAM) アクセス許可を使用します。IAM 条件を指定して、ユーザーを特定のコレクションに制限できます。

  • aoss:CreateSecurityPolicy – 暗号化ポリシーを作成します。

  • aoss:ListSecurityPolicies – アタッチされているすべての暗号化ポリシーとコレクションを一覧表示します。

  • aoss:GetSecurityPolicy – 特定の暗号化ポリシーの詳細を表示します。

  • aoss:UpdateSecurityPolicy – 暗号化ポリシーを変更します。

  • aoss:DeleteSecurityPolicy – 暗号化ポリシーを削除します。

以下のアイデンティティベースのアクセスポリシー例では、ユーザーがリソースパターン collection/application-logs の暗号化ポリシーを管理する際に必要となる、最小限の許可を付与しています。

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "aoss:CreateSecurityPolicy", "aoss:UpdateSecurityPolicy", "aoss:DeleteSecurityPolicy", "aoss:GetSecurityPolicy" ], "Resource":"*", "Condition":{ "StringEquals":{ "aoss:collection":"application-logs" } } }, { "Effect":"Allow", "Action":[ "aoss:ListSecurityPolicies" ], "Resource":"*" } ] }

カスタマーマネージドキーのキーポリシー

コレクションを保護するためにカスタマーマネージドキーを選択すると、 OpenSearch Serverless は、選択を行うプリンシパルに代わって KMS キーを使用するアクセス許可を取得します。そのプリンシパル、ユーザー、またはロールには、 OpenSearch サーバーレスが必要とする KMS キーに対するアクセス許可が必要です。れらのアクセス許可は、キーポリシーまたは IAM ポリシーにより付与できます。

少なくとも、 OpenSearch Serverless にはカスタマーマネージドキーに対する次のアクセス許可が必要です。

例:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "aoss.us-east-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }

OpenSearch サーバーレスは、kms:GenerateDataKey および kms:Decrypt アクセス許可を持つグラントを作成します。

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

OpenSearch Serverless が で許可を使用する方法 AWS KMS

OpenSearch サーバーレスでは、カスタマーマネージドキーを使用するにはグラントが必要です。

アカウントに新しいキーを使用して暗号化ポリシーを作成すると、 OpenSearch Serverless は にCreateGrantリクエストを送信して、ユーザーに代わって許可を作成します AWS KMS。の許可 AWS KMS は、顧客アカウントの KMS キーへの OpenSearch サーバーレスアクセスを許可するために使用されます。

OpenSearch Serverless では、以下の内部オペレーションでカスタマーマネージドキーを使用するには、グラントが必要です。

  • DescribeKeyリクエストを送信 AWS KMS して、指定された対称カスタマーマネージドキー ID が有効であることを確認します。

  • KMS キーにGenerateDataKeyリクエストを送信して、オブジェクトを暗号化するデータキーを作成します。

  • Decrypt リクエストを AWS KMS に送信して、暗号化されたデータキーを復号し、データの暗号化に使用できます。

任意のタイミングで、許可に対するアクセス権を取り消したり、カスタマーマネージドキーに対するサービスからのアクセス権を削除したりできます。これを行うと、 OpenSearch Serverless はカスタマーマネージドキーによって暗号化されたデータにアクセスできなくなります。これにより、そのデータに依存するすべてのオペレーションに影響し、非同期ワークフローでAccessDeniedExceptionエラーや障害が発生します。

OpenSearch サーバーレスは、特定のカスタマーマネージドキーがセキュリティポリシーまたはコレクションに関連付けられていない場合、非同期ワークフローで許可を廃止します。

暗号化ポリシーの作成 (コンソール)

暗号化ポリシーで、そのポリシーを適用する KMS キーと一連のコレクションパターンを指定します。ポリシーで定義されているパターンのいずれかに一致する新しいコレクションには、その作成時に、対応する KMS キーが割り当てられます。暗号化ポリシーは、コレクションの作成を開始する前に作成することをお勧めします。

OpenSearch サーバーレス暗号化ポリシーを作成するには
  1. https://console.aws.amazon.com/aos/home で Amazon OpenSearch Service コンソールを開きます。

  2. 左側のナビゲーションパネルで [Serverless] (サーバーレス) を展開し、[Encryption policies] (暗号化ポリシー) を選択します。

  3. [Create encryption policy] (暗号化ポリシーを作成) を選択します。

  4. ポリシーの名前と説明を入力します。

  5. [Resources] (リソース) に、この暗号化ポリシーに関する (1 つ以上の) リソースパターンを入力します。現在の AWS アカウント とリージョンにあり、新しく作成され、いずれかのパターンに一致しているコレクションが、自動的にこのポリシーに割り当てられます。例えば、ApplicationLogs と (ワイルドカードなしで) 入力し、後にその名前でコレクションを作成した場合、ポリシーおよび対応する KMS キーが、そのコレクションに対し割り当てられます。

    また、Logs* などのプレフィックスを指定して、名前が Logs で始まる任意の新しいコレクションに対し、ポリシーを割り当てることもできます。ワイルドカードを使用すると、複数のコレクションの暗号化設定を大規模に管理できます。

  6. [Encryption] (暗号化) で、使用する KMS キーを選択します。

  7. [作成] を選択します。

次のステップ: コレクションを作成する

1 つ以上の暗号化ポリシーを設定したら、それらのポリシーで定義されているルールと一致するコレクションの作成を開始できます。手順については、「コレクションの作成」を参照してください。

コレクション作成の暗号化ステップでは、 OpenSearch Serverless は入力した名前が暗号化ポリシーで定義されたパターンと一致することを通知し、対応する KMS キーをコレクションに自動的に割り当てます。リソースパターンにワイルドカード (*) が含まれている場合は、その一致をオーバーライドして独自のキーを選択できます。

暗号化ポリシーの作成 (AWS CLI)

OpenSearch Serverless API オペレーションを使用して暗号化ポリシーを作成するには、JSON 形式でリソースパターンと暗号化キーを指定します。CreateSecurityPolicy リクエストは、インラインポリシーと .json ファイルの両方を受け入れます。

暗号化ポリシーは以下の形式になります。このサンプルファイル (my-policy.json) は、将来作成される autopartsinventory という名前のコレクションすべてと、名前が sales で始まるコレクションすべてに一致します。

{ "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ] } ], "AWSOwnedKey":false, "KmsARN":"arn:aws:encryption:us-east-1:123456789012:key/93fd6da4-a317-4c17-bfe9-382b5d988b36" }

サービス所有のキーを使用するには、AWSOwnedKeytrue を設定します。

{ "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ] } ], "AWSOwnedKey":true }

次のリクエストは暗号化ポリシーを作成します。

aws opensearchserverless create-security-policy \ --name sales-inventory \ --type encryption \ --policy file://my-policy.json

次に、 CreateCollection API オペレーションを使用して、リソースパターンの 1 つに一致する 1 つ以上のコレクションを作成します。

暗号化ポリシーの表示

コレクションを作成する際、コレクション名と一致するリソースパターンを持つポリシーを確認するために、アカウント内の既存の暗号化ポリシーを、プレビューする必要が生じることがあります。次のListSecurityPoliciesリクエストは、アカウント内のすべての暗号化ポリシーを一覧表示します。

aws opensearchserverless list-security-policies --type encryption

このリクエストは、すべての設定済みの暗号化ポリシーに関する情報を返します。policy 要素の内容を使用して、ポリシーで定義されているパターンルールを表示します。

{ "securityPolicyDetails": [ { "createdDate": 1663693217826, "description": "Sample encryption policy", "lastModifiedDate": 1663693217826, "name": "my-policy", "policy": "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"]}],\"AWSOwnedKey\":true}", "policyVersion": "MTY2MzY5MzIxNzgyNl8x", "type": "encryption" } ] }

KMS キーを含む特定のポリシーに関する詳細情報を表示するには、 GetSecurityPolicy コマンドを使用します。

暗号化ポリシーの更新

暗号化ポリシー内で KMS キーを更新する場合、その変更は、設定された名前またはパターンと一致する、新規作成のコレクションだけに適用されます。KMS キーが既に割り当て済みの、既存のコレクションには影響は与えません。

同様なことが、ポリシーの一致ルールにも当てはまります。ルールを追加、変更、または削除した場合、その変更は新しく作成されたコレクションにのみ適用されます。ポリシーのルールを変更したために、コレクション名と一致しなくなったとしても、既存のコレクションに割り当てられた KMS キーは失われません。

OpenSearch サーバーレスコンソールで暗号化ポリシーを更新するには、暗号化ポリシー を選択し、変更するポリシーを選択し、編集 を選択します。変更を行ってから、[Save (保存)] を選択します。

OpenSearch Serverless API を使用して暗号化ポリシーを更新するには、 UpdateSecurityPolicyオペレーションを使用します。次のリクエストでは、新しいポリシー JSON ドキュメントを使用して、暗号化ポリシーを更新します。

aws opensearchserverless update-security-policy \ --name sales-inventory \ --type encryption \ --policy-version 2 \ --policy file://my-new-policy.json

暗号化ポリシーの削除

暗号化ポリシーを削除しても、そのポリシーで定義されている KMS キーを現在使用しているコレクションに影響はありません。 OpenSearch Serverless コンソールでポリシーを削除するには、ポリシーを選択し、「削除」を選択します。

DeleteSecurityPolicy オペレーションを使用することもできます。

aws opensearchserverless delete-security-policy --name my-policy --type encryption

転送中の暗号化

OpenSearch Serverless 内では、コレクション内のすべてのパスは、業界標準の AES-256 暗号を使用して Transport Layer Security 1.2 (TLS) を使用して転送中に暗号化されます。Opensearch のすべての API と Dashboards へのアクセスも、TLS 1.2 を経由します。TLS は、ネットワーク上でやり取りされる情報の暗号化に使用される、業界標準の暗号化プロトコルのセットです。