

このガイドでは、2025 年 3 月 13 日にリリースされた新しい AWS Wickr 管理コンソールについて説明します。AWS Wickr 管理コンソールのクラシックバージョンのドキュメントについては、[「 Classic Administration Guide](https://docs.aws.amazon.com/wickr/latest/adminguide-classic/what-is-wickr.html)」を参照してください。

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

# データ保持サービスのカスタム KMS キー設定
<a name="custom-kms-key"></a>

データ保持サービスで独自の KMS キーを使用するには、製品を起動する前に、次の設定でキーを作成します。

保持キー  
+ キータイプ: 対称 (`SYMMETRIC_DEFAULT`)
+ キーの使用方法: 暗号化と復号
+ キーローテーション: を有効にすることをお勧めします

パスワード復旧キー  
+ キータイプ: 非対称 (`ECC_NIST_P384`)
+ キーの使用方法: キーアグリーメント
+ キーローテーション: 非対称キーではサポートされていません

## カスタム KMS キーポリシーの設定
<a name="custom-kms-key-policy-setup"></a>

1. 上記の必要な設定で KMS キーを作成します。

1. KMS コンソールから各キーの**キー ID** をコピーします。

1. Service Catalog でデータ保持製品を起動し、 `KmsKeyId`および `PasswordRecoveryKeyId`フィールドにキー IDs を入力します。

1. スタックが完了したら、**出力**タブに移動します。

1. `DRSCustomerCrossAccountRoleArn` と の値をコピーします`DecryptionLambdaRoleArn`。

1. KMS コンソールを開き、カスタム保持キーを選択します。

1. [**Key Policy**] (キーポリシー) セクションで、[**Switch to policy view**] (ポリシービューへの切り替え) を選択します。

1. [**Edit**] を選択します。

1. 次のステートメントをキーポリシーの`"Statement"`配列に追加し、プレースホルダー ARNs をステップ 5 の値に置き換えます。

1. **[Save changes]** (変更の保存) をクリックします。

1. 以下のパスワード復旧ステートメントを使用して、パスワード復旧キーのステップ 6～10 を繰り返します。

### 保持キー — 追加するステートメント
<a name="custom-kms-key-retention-statements"></a>

```
{
  "Sid": "EnclaveGenerateDataKey",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DRSCustomerCrossAccountRoleArn}"
  },
  "Action": "kms:GenerateDataKey",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:RecipientAttestation:PCR0": "*",
      "kms:RecipientAttestation:PCR1": "*",
      "kms:RecipientAttestation:PCR2": "*"
    },
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": [
        "aws:wickr:network:id",
        "aws:wickr:app:id"
      ]
    }
  }
},
{
  "Sid": "EnclaveDescribeKey",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DRSCustomerCrossAccountRoleArn}"
  },
  "Action": "kms:DescribeKey",
  "Resource": "*"
},
{
  "Sid": "EnclaveDecryptWithAttestation",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DRSCustomerCrossAccountRoleArn}"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:RecipientAttestation:PCR0": "*",
      "kms:RecipientAttestation:PCR1": "*",
      "kms:RecipientAttestation:PCR2": "*"
    },
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "aws:wickr:app:id"
    }
  }
},
{
  "Sid": "DecryptLambdaDecrypt",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DecryptionLambdaRoleArn}"
  },
  "Action": "kms:Decrypt",
  "Resource": "*",
  "Condition": {
    "ForAnyValue:StringEquals": {
      "kms:EncryptionContextKeys": "aws:wickr:network:id"
    }
  }
}
```

各ステートメントの目的については、「カスタマーマネージド KMS キーを使用するためのアクセス許可の設定」セクションの[保管中の暗号化](encryption-rest.md)「」を参照してください。 ****

### パスワード復旧キー — 追加するステートメント
<a name="custom-kms-key-password-recovery-statements"></a>

```
{
  "Sid": "EnclaveDeriveSharedSecret",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DRSCustomerCrossAccountRoleArn}"
  },
  "Action": "kms:DeriveSharedSecret",
  "Resource": "*",
  "Condition": {
    "StringLike": {
      "kms:RecipientAttestation:PCR0": "*",
      "kms:RecipientAttestation:PCR1": "*",
      "kms:RecipientAttestation:PCR2": "*"
    }
  }
},
{
  "Sid": "CustomerGetPublicKey",
  "Effect": "Allow",
  "Principal": {
    "AWS": "{DRSCustomerCrossAccountRoleArn}"
  },
  "Action": [
    "kms:DescribeKey",
    "kms:GetPublicKey"
  ],
  "Resource": "*"
}
```

各ステートメントの目的:

**EnclaveDeriveSharedSecret**
+ kms:DeriveSharedSecret — Nitro Enclave によって呼び出され、パスワード復旧キーのプライベートキーを使用して ECDH キー契約を実行します。これにより、移行ワークフロー中にパスワードを復号するために使用される共有シークレットが取得されます。エンクレーブが有効な Nitro Enclave 認証ドキュメント (PCR0/1/2 条件) を提供する場合にのみ許可され、エンクレーブ外でキーアグリーメントが発生しないようにします。

**CustomerGetPublicKey**
+ kms:GetPublicKey — パスワード復旧キーの ECC P-384 パブリックキーの取得を許可します。これは、お客様のマシンで実行されているパスワード収集スクリプトがパスワードのローカル ECDH 暗号化を実行するために使用されます。
+ kms:DescribeKey — 検証用のキーメタデータ (キー仕様、使用状況、ステータス) の取得を許可します。

### 例 — 保持キー
<a name="custom-kms-key-example"></a>

変更前:

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "YourExistingStatements",
      "Effect": "...",
      "...": "..."
    }
  ]
}
```

変更後:

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    {
      "Sid": "YourExistingStatements",
      "Effect": "...",
      "...": "..."
     },
    {
      "Sid": "EnclaveGenerateDataKey",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{account-id}:role/DRSCustomerCrossAccountRole-{network-id}-{region}"
      },
      "Action": "kms:GenerateDataKey",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:RecipientAttestation:PCR0": "*",
          "kms:RecipientAttestation:PCR1": "*",
          "kms:RecipientAttestation:PCR2": "*"
        },
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": [
            "aws:wickr:network:id",
            "aws:wickr:app:id"
          ]
        }
      }
    },
    {
      "Sid": "EnclaveDescribeKey",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{account-id}:role/DRSCustomerCrossAccountRole-{network-id}-{region}"
      },
      "Action": "kms:DescribeKey",
      "Resource": "*"
    },
    {
      "Sid": "EnclaveDecryptWithAttestation",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{account-id}:role/DRSCustomerCrossAccountRole-{network-id}-{region}"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:RecipientAttestation:PCR0": "*",
          "kms:RecipientAttestation:PCR1": "*",
          "kms:RecipientAttestation:PCR2": "*"
        },
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": "aws:wickr:app:id"
        }
      }
    },
    {
      "Sid": "DecryptLambdaDecrypt",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{account-id}:role/{DecryptionLambdaRoleName}"
      },
      "Action": "kms:Decrypt",
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "kms:EncryptionContextKeys": "aws:wickr:network:id"
        }
      }
    }
  ]
}
```