

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

# AWS Secrets Manager シークレットの暗号化キーを変更する
<a name="manage_update-encryption-key"></a>

Secrets Manager は AWS KMS 、キーとデータキーによる[エンベロープ暗号化](security-encryption.md)を使用して各シークレット値を保護します。シークレットごとに使用する KMS キーを選択できます。を使用するか AWS マネージドキー **aws/secretsmanager**、カスタマーマネージドキーを使用できます。ほとんどのケースでは、**aws/secretsmanager** の使用をお勧めします。利用料金は発生しません。別の からシークレットにアクセスする必要がある場合 AWS アカウント、または独自の KMS キーを使用してローテーションしたり、キーポリシーを適用したりする場合は、 を使用します カスタマー管理キー。必要なもの: [KMS キーのアクセス許可](security-encryption.md#security-encryption-authz) カスタマーマネージドキーの使用料金の詳細については、「[料金](intro.md#asm_pricing)」を参照してください。

シークレットの暗号化キーを変更できます。たとえば、[別のアカウントからシークレットにアクセスし](auth-and-access_examples_cross.md)、そのシークレットが現在 AWS マネージドキー を使用して暗号化されている場合は`aws/secretsmanager`、 に切り替えることができます カスタマー管理キー。

**ヒント**  
をローテーションする場合は カスタマー管理キー、 AWS KMS 自動キーローテーションを使用することをお勧めします。詳細については、[「キーのローテーション」を参照してください AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)。

暗号化キーを変更すると、Secrets Manager は新しいキーを使用して、`AWSCURRENT`、`AWSPENDING`、`AWSPREVIOUS` バージョンを再暗号化します。シークレットからロックアウトされないように、Secrets Manager は既存のすべてのバージョンを以前のキーで暗号化したままの状態にします。つまり、`AWSCURRENT`、`AWSPENDING`、`AWSPREVIOUS` のバージョンを以前のキーまたは新しいキーで復号化できます。以前のキーに対する `kms:Decrypt` アクセス許可がない場合、暗号化キーを変更すると、Secrets Manager はシークレットバージョンを復号して再暗号化することはできません。この場合、既存のバージョンは再暗号化されません。

`AWSCURRENT` を新しい暗号化キーでのみ復号できるようにするには、新しいキーを使用してシークレットの新しいバージョンを作成します。次に、`AWSCURRENT` シークレットのバージョンを復号するには、新しいキーに対するアクセス許可が必要です。

以前の暗号化キーを非アクティブ化すると、`AWSCURRENT`、`AWSPENDING`、`AWSPREVIOUS` 以外のシークレットバージョンを復号できなくなります。アクセスを保持する必要のある他のラベル付きシークレットバージョンがある場合、[AWS CLI](#manage_update-encryption-key_CLI) を使用して新しい暗号化キーでそのバージョンを再作成する必要があります。

**シークレットの暗号化キーを変更するには (コンソール)**

1. Secrets Manager のコンソール ([https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)) を開きます。

1. シークレットのリストから、自分のシークレットを選択します。

1. シークレットの詳細ページの **[シークレットの詳細]** セクションで、**[アクション]** を選択して **[暗号化キーの編集]** を選択します。

## AWS CLI
<a name="manage_update-encryption-key_CLI"></a>

シークレットの暗号化キーを変更した後で以前の暗号化キーを非アクティブ化すると、`AWSCURRENT`、`AWSPENDING`、`AWSPREVIOUS` 以外のシークレットバージョンを復号できなくなります。アクセスを保持する必要のある他のラベル付きシークレットバージョンがある場合、[AWS CLI](#manage_update-encryption-key_CLI) を使用して新しい暗号化キーでそのバージョンを再作成する必要があります。

**シークレットの暗号化キーを変更するには (AWS CLI)**

1. 次の [https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/update-secret.html](https://docs.aws.amazon.com//cli/latest/reference/secretsmanager/update-secret.html) の例は、シークレット値の暗号化に使用される KMS キーを更新します。KMS キーは、シークレットと同じリージョンに存在する必要があります。

   ```
   aws secretsmanager update-secret \
         --secret-id MyTestSecret \
         --kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
   ```

1. (オプション) カスタムラベルの付いたシークレットバージョンがある場合、新しいキーを使用してそれらを再暗号化するには、そのバージョンを再作成する必要があります。

   コマンドシェルにコマンドを入力すると、コマンド履歴がアクセスされたり、ユーティリティからコマンドパラメータにアクセスされたりするリスクがあります。「[を使用して AWS Secrets Manager シークレット AWS CLI を保存するリスクを軽減する](security_cli-exposure-risks.md)」を参照してください。

   1. シークレットバージョンの値を取得します。

      ```
      aws secretsmanager get-secret-value \
            --secret-id MyTestSecret \
            --version-stage MyCustomLabel
      ```

      シークレット値を書き留めておきます。

   1. その値で新しいバージョンを作成します。

      ```
      aws secretsmanager put-secret-value \
          --secret-id testDescriptionUpdate \
          --secret-string "SecretValue" \
          --version-stages "MyCustomLabel"
      ```