

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

# Amazon OpenSearch Service カスタムパッケージ AWS KMS 統合
<a name="custom-package-kms-integration"></a>

Amazon OpenSearch Service カスタムパッケージは、 を使用して保管中の`ZIP-PLUGIN`パッケージを保護するために、デフォルトで暗号化を提供します AWS マネージドキー。
+ **AWS 所有のキー** – Amazon OpenSearch Service カスタムパッケージは、デフォルトでこれらのキーを使用して `ZIP-PLUGIN` パッケージを自動的に暗号化します。その使用を表示、管理、使用 AWS 所有のキー 、または監査することはできません。しかし、データを暗号化するキーを保護するために何らかの操作を行ったり、プログラムを変更したりする必要はありません。詳細については、「*AWS Key Management Service デベロッパーガイド*」の 「[AWS 所有のキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk)」を参照してください。
+ **カスタマーマネージドキー** – `ZIP-PLUGIN`カスタムパッケージの作成時にカスタマーマネージドキーを選択すること AWS 所有のキー で、既存の に 2 番目の暗号化レイヤーを追加できます。

  Amazon OpenSearch Service カスタムパッケージは、作成、所有、管理する対称カスタマーマネージドキーを使用して、既存の AWS 所有暗号化に 2 番目の暗号化レイヤーを追加することをサポートします。この暗号化レイヤーはユーザーが完全に制御できるため、以下のタスクを実行できます。
  + キーポリシーの確立と維持
  +  AWS Identity and Access Management (IAM) ポリシーと許可の確立と維持
  + キーポリシーの有効化と無効化
  + キー暗号化マテリアルのローテーション
  + タグを追加
  + キーエイリアスの作成
  + キー削除のスケジュール

詳細については、「[AWS Key Management Service デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)」の「カスタマーマネージドキー」を参照してください。

**注記**  
Amazon OpenSearch Service カスタムパッケージは、 AWS 所有のキー を使用して、保管時の暗号化を無償で自動的に有効にします。ただし、カスタマーマネージドキーを使用する場合、 AWS KMS 料金が適用されます。料金の詳細については、「[AWS Key Management Service の料金](https://aws.amazon.com/kms/pricing/)」を参照してください。

## Amazon OpenSearch Service カスタムパッケージサービスが で許可を使用する方法 AWS KMS
<a name="custom-package-kms-grants"></a>

OpenSearch Service カスタムパッケージには、カスタマーマネージドキーを使用するための許可が必要です。

カスタマーマネージドキーで暗号化された`ZIP-PLUGIN`パッケージを作成すると、Amazon OpenSearch Service カスタムパッケージサービスは [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html) リクエストを送信してユーザーに代わって許可を作成します AWS KMS。の許可 AWS KMS は、OpenSearch Service にアカウントの AWS KMS キーへのアクセスを許可します。OpenSearch Service カスタムパッケージによって作成された許可には、リクエストにカスタムパッケージ ID を持つ暗号化コンテキストが含まれている場合にのみオペレーションを許可する制約があります。

Amazon OpenSearch Service カスタムパッケージは、以下の内部オペレーションのために、カスタマーマネージドキーの使用に関する許可を必要とします。


| 運用 | 説明 | 
| --- | --- | 
| DescribeKey | プラグインパッケージの作成時に入力された対称カスタマーマネージドキー ID が有効 AWS KMS であることを確認するDescribeKeyリクエストを に送信します。 | 
| GenerateDataKeyWithoutPlaintext | カスタマーマネージドキーによって暗号化されたデータキーを生成する AWS KMS リクエストGenerateDataKeyWithoutPlaintextを に送信します。 | 
| GenerateDataKey | GenerateDataKey リクエストを に送信 AWS KMS して、内部でコピーするときにパッケージを暗号化するデータキーを生成します。 | 
| Decrypt | 暗号化されたデータキーを復号 AWS KMS 化するためのDecryptリクエストを に送信し、データの復号化に使用できます。 | 

許可へのアクセスの取り消しや、カスタマーマネージドキーに対するサービスのアクセスの取り消しは、いつでもできます。これを行うと、OpenSearch Service は、カスタマーマネージドキーによって暗号化されたすべてのデータにアクセスできなくなり、そのデータに依存しているオペレーションが影響を受けます。例えば、OpenSearch Service がアクセスできないプラグインパッケージを関連付けようとすると、オペレーションは `AccessDeniedException` エラーを返します。

## カスタマーマネージドキーを作成する
<a name="custom-package-create-cmk"></a>

対称カスタマーマネージドキーは、 AWS マネジメントコンソール または AWS KMS APIs を使用して作成できます。

**対称カスタマーマネージドキーを作成するには**
+ 「*AWS Key Management Service デベロッパーガイド*」の「[KMS キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」のステップに従います。

### キーポリシー
<a name="custom-package-key-policy"></a>

キーポリシーは、カスタマーマネージドキーへのアクセスを制御します。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。キーポリシーは、カスタマーマネージドキーの作成時に指定できます。詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[AWS KMSでのキーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)」を参照してください。

カスタマーマネージドキーをプラグインリソースで使用するには、キーポリシーで次の API オペレーションを許可する必要があります。
+ `kms:CreateGrant` - カスタマーマネージドキーに許可を追加します。指定された AWS KMS キーへのアクセスを制御する権限を付与し、OpenSearch Service カスタムパッケージが必要とするオペレーションを付与するためのアクセスを許可します。許可の使用についての詳細は、「[AWS KMS デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)」を参照してください。

  これにより、OpenSearch Service は以下を実行できます。
  + `GenerateDataKeyWithoutPlainText` を呼び出して暗号化されたデータキーを生成し、さらに検証するために保存します。
  + `GenerateDataKey` を呼び出してプラグインパッケージを内部でコピーします。
  + `Decrypt` を呼び出してプラグインパッケージに内部でアクセスします。
  + `RetireGrant` にサービスが許可するための、廃止するプリンシパルを設定します。
+ `kms:DescribeKey` – カスタマーマネージドキーの詳細を提供し、OpenSearch Service がキーを検証できるようにします。
+ `kms:GenerateDataKey`、`kms:GenerateDataKeyWithoutPlaintext`、 `kms:Decrypt` – OpenSearch Service カスタムパッケージが、許可内でこれらのオペレーションを使用できるようにします。

OpenSearch Service カスタムパッケージに追加できるポリシーステートメントの例を次に示します。

```
"Statement" : [
  {
    "Sid" : "Allow access to principals authorized to use OpenSearch Service custom packages",
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "*"
    },
    "Action" : [
      "kms:CreateGrant",
      "kms:GenerateDataKey",
      "kms:GenerateDataKeyWithoutPlaintext",
      "kms:Decrypt"
    ],
    "Resource" : "*",
    "Condition" : {
      "StringEquals" : {
        "kms:ViaService" : "custom-packages.region.amazonaws.com"
      },
      "StringEquals" : {
        "kms:EncryptionContext:packageId": "Id of the package"
      }
    }
  },
  {
    "Sid" : "Allow access to principals authorized to use Amazon OpenSearch Service custom packages",
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "*"
    },
    "Action" : [
      "kms:DescribeKey"
    ],
    "Resource" : "*",
    "Condition" : {
      "StringEquals" : {
        "kms:ViaService" : "custom-packages.region.amazonaws.com"
      }
    }
  }
]
```

ポリシーでのアクセス許可の指定に関する詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[Key policies in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)」を参照してください。

キーアクセスのトラブルシューティングの詳細については、 *AWS Key Management Service デベロッパーガイド*の「アクセス[AWS KMS 許可のトラブルシューティング](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html)」を参照してください。

## Amazon OpenSearch Service カスタムパッケージのカスタマーマネージドキーを指定する
<a name="custom-package-specify-cmk"></a>

カスタマーマネージドキーは、`ZIP-PLUGIN` パッケージの 2 番目の暗号化レイヤーとして指定できます。

プラグインパッケージを作成するときは、OpenSearch Service カスタムパッケージがプラグインパッケージの暗号化に使用する AWS KMS キー ID を入力してデータキーを指定できます。

*AWS KMS key ID* — AWS KMS カスタマーマネージドキーのキー識別子。キー ID、キー ARN、エイリアス名、またはエイリアス ARN を入力します。

## Amazon OpenSearch Service カスタムパッケージの暗号化コンテキスト
<a name="custom-package-encryption-context"></a>

暗号化コンテキストは、データに関する追加のコンテキスト情報を含むキーと値のペアのオプションセットです。

AWS KMS は、追加の認証済みデータとして暗号化コンテキストを使用して、認証済み暗号化をサポートします。データを暗号化するリクエストに暗号化コンテキストを含めると、 は暗号化コンテキストを暗号化されたデータに AWS KMS バインドします。データを復号化するには、そのリクエストに (暗号化時と) 同じ暗号化コンテキストを含めます。

### Amazon OpenSearch Service カスタムパッケージの暗号化コンテキスト
<a name="custom-package-encryption-context-details"></a>

Amazon OpenSearch Service カスタムパッケージは、すべての AWS KMS 暗号化オペレーションで同じ暗号化コンテキストを使用します。キーは `packageId`で、値はプラグインパッケージ`package-id`の です。

### モニタリングに暗号化コンテキストを使用する
<a name="custom-package-encryption-context-monitoring"></a>

対称カスタマーマネージドキーを使用してプラグインパッケージを暗号化する場合は、監査レコードとログで暗号化コンテキストを使用して、カスタマーマネージドキーがどのように使用されているかを特定することができます。暗号化コンテキストは、 AWS CloudTrail または Amazon CloudWatch Logs によって生成されたログにも表示されます。

### 暗号化コンテキストを使用して顧客マネージドキーへのアクセスを制御する
<a name="custom-package-encryption-context-access-control"></a>

対称カスタマーマネージドキー (CMK) へのアクセスを制御するための条件として、キーポリシーと IAM ポリシー内の暗号化コンテキストを使用することもできます。付与する際に、暗号化コンテキストの制約を使用することもできます。

OpenSearch Service カスタムパッケージは、許可で暗号化コンテキスト制約を使用して、アカウントまたはリージョン内のカスタマーマネージドキーへのアクセスを制御します。グラントの制約では、指定された暗号化コンテキストの使用をグラントが許可するオペレーションが必要です。

次に、特定の暗号化コンテキストのカスタマーマネージドキーへのアクセスを付与するキーポリシーステートメントの例を示します。このポリシーステートメントの条件では、暗号化コンテキストを指定する暗号化コンテキスト制約がグラントに必要です。

```
{
    "Sid": "Enable DescribeKey",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole"
    },
    "Action": "kms:DescribeKey",
    "Resource": "*"
},
{
    "Sid": "Enable OpenSearch Service custom packages to use the key",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole"
    },
    "Action" : [
         "kms:CreateGrant",
        "kms:GenerateDataKey",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals" : {
            "kms:EncryptionContext:packageId": "ID of the package"
         }
    }
}
```

## OpenSearch カスタムパッケージサービスの暗号化キーのモニタリング
<a name="custom-package-monitoring-keys"></a>

OpenSearch Service カスタムパッケージサービスリソースで AWS KMS カスタマーマネージドキーを使用する場合、CloudTrail または CloudWatch Logs を使用してOpenSearch カスタムパッケージが に送信するリクエストを追跡できます AWS KMS。

**詳細情報**  
次のリソースは、保管時のデータ暗号化についての詳細を説明しています。
+  AWS KMS 基本概念の詳細については、「 *AWS Key Management Service デベロッパーガイド*[AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)」の「」を参照してください。
+ のセキュリティのベストプラクティスの詳細については AWS KMS、*AWS 「ベストプラクティスの規範ガイダンスガイド*」を参照してください[AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html)。