> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 顧客管理キー

> 独自の AWS KMS キーを利用して、Devin Enterprise Dedicated Deployment 内の保存データを暗号化します。

<div id="overview">
  ## 概要
</div>

デフォルトでは、Cognitionは保存データであるすべての顧客データを、Cognition管理のキーを使用して暗号化します。暗号化キーを組織側で直接管理する必要がある場合、Devin は [AWS Key Management Service (KMS)](https://aws.amazon.com/kms/) を使用する\*\*顧客管理キー (CMK) \*\*に対応しています。

CMKを使用すると、お客様自身の AWS KMS キーを指定でき、Cognition はそのキーを使って専用テナントに保存されたデータ (セッションデータや VM スナップショットを含む) を暗号化します。これにより、キーのローテーション、無効化、アクセスの取り消しなど、キーのライフサイクルをいつでも完全に制御できます。

<Note>
  CMKは**Enterprise Dedicated Deployment**デプロイでのみ利用でき、初回デプロイの設定時に構成する必要があります。デプロイモデルの詳細については、[Enterprise Deployment](/ja/enterprise/deployment/overview)を参照してください。
</Note>

<div id="how-it-works">
  ## 仕組み
</div>

Enterprise Dedicated Deployment deployment では、Devin はお客様の専用テナント内の Amazon S3 バケットに顧客データを保存します。CMK を有効にすると:

1. お客様の AWS KMS キーは、これらの S3 バケットに書き込まれるすべてのデータの**サーバー側暗号化**に使用されます。
2. Cognition のインフラストラクチャは、このキーを使用して、データの書き込み時に暗号化し、読み取り時に復号します。
3. キーの所有権はお客様自身の AWS アカウントにあり、そのライフサイクルもお客様自身で管理できます。

KMS キーを指定しない場合、Cognition がお客様に代わって暗号化キーを作成し、管理します。

<div id="prerequisites">
  ## 前提条件
</div>

CMK を設定する前に、以下を満たしていることを確認してください。

* Cognition の **Enterprise Dedicated Deployment** デプロイメントを利用していること (CMK は初回デプロイ時に設定する必要があります)
* Devin のデプロイメントと **同じ AWS リージョン** に **AWS KMS キー** があること
* KMS キーポリシーを変更し、キーエイリアスを作成する権限があること

<Info>
  専用テナントの AWS リージョンを確認するには、Cognition の担当アカウントチームにお問い合わせください。
</Info>

<div id="setup">
  ## 構成
</div>

<div id="step-1-create-or-select-a-kms-key">
  ### ステップ 1: KMS キーを作成または選択
</div>

Cognition 専用テナントと同じリージョンにある既存の対称 AWS KMS キーを利用するか、[新しいキーを作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)します。キーは **対称暗号化キー** (AWS KMS のデフォルトのキータイプ) である必要があります。

<div id="step-2-add-a-key-alias">
  ### ステップ 2: キーエイリアスを追加する
</div>

KMS キーにエイリアス **`devin-customer-managed-key`** を追加します。Cognition のインフラストラクチャが暗号化に使用するキーを特定して利用できるようにするため、この正確なエイリアスが必要です。

<Tabs>
  <Tab title="AWS コンソール">
    1. [AWS KMS Console](https://console.aws.amazon.com/kms) を開きます。
    2. キーを選択し、**Aliases** タブを開きます。
    3. **Create alias** を選択します。
    4. エイリアス名として `devin-customer-managed-key` を入力します。
    5. エイリアスを保存します。
  </Tab>

  <Tab title="AWS CLI">
    ```bash theme={null}
    aws kms create-alias \
        --alias-name alias/devin-customer-managed-key \
        --target-key-id <your-key-id>
    ```
  </Tab>
</Tabs>

<div id="step-3-configure-the-key-policy">
  ### ステップ 3: キーポリシーを設定する
</div>

KMS キーポリシーを更新し、Cognition の AWS アカウントがそのキーを使用して暗号化および復号できるようにします。以下のステートメントをキーポリシーに追加してください。

```json theme={null}
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::272506498303:root",
                    "arn:aws:iam::063509147090:root"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }
    ]
}
```

<Tabs>
  <Tab title="AWS コンソール">
    1. [AWS KMS Console](https://console.aws.amazon.com/kms) を開きます。
    2. キーを選択し、**Key policy** タブを開きます。
    3. **Edit** を選択します。
    4. 既存のキーポリシーの `Statement` 配列に、上記のステートメントを追加します。
    5. ポリシーを保存します。
  </Tab>

  <Tab title="AWS CLI">
    ```bash theme={null}
    # まず、現在のキーポリシーを取得します
    aws kms get-key-policy \
        --key-id <your-key-id> \
        --policy-name default \
        --output text > key-policy.json

    # key-policy.json を編集して上記のステートメントを追加し、
    # 更新したポリシーを適用します
    aws kms put-key-policy \
        --key-id <your-key-id> \
        --policy-name default \
        --policy file://key-policy.json
    ```
  </Tab>
</Tabs>

<div id="step-4-provide-the-key-arn-to-cognition">
  ### ステップ 4: キー ARN を Cognition に共有する
</div>

KMS キーの ARN を Cognition の担当アカウントチームに送信してください。ARN の形式は次のとおりです。

```text theme={null}
arn:aws:kms:<region>:<your-account-id>:key/<key-id>
```

Cognitionがお客様のキーARNを受領後、チームがお客様専用のテナントでそのキーを暗号化に利用するよう設定します。お客様側で追加の対応は不要です。

<div id="key-management">
  ## キー管理
</div>

<div id="key-rotation">
  ### キーのローテーション
</div>

AWS KMS は、カスタマーマネージドキーの[自動キーローテーション](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)をサポートしています。有効にすると、AWS は毎年キーの新しい暗号化マテリアルを自動的に作成し、以前に暗号化されたデータを復号できるよう、古いマテリアルは保持されます。Cognition では、自動キーローテーションを有効にすることを推奨しています。

<div id="revoking-access">
  ### アクセスの取り消し
</div>

[ステップ 3](#step-3-configure-the-key-policy) で追加したポリシーステートメントを削除すると、Cognition の KMS キーへのアクセスはいつでも取り消せます。アクセスを取り消すと、Cognition はお客様のテナント内の暗号化データを読み書きできなくなり、アクセスが復旧するまで Devin の機能に支障が生じますので、ご注意ください。

<Warning>
  KMS キーを無効化または削除したり、Cognition のアクセスを取り消したりすると、お客様のテナント内の暗号化されたすべての顧客データが読み取れなくなります。キーまたはそのポリシーを変更する前に、影響を十分に理解したうえで実施してください。
</Warning>

<div id="monitoring-key-usage">
  ### KMS キー使用状況の監視
</div>

[AWS CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/logging-using-cloudtrail.html) を使用すると、KMS キーのすべての使用状況を監視できます。CloudTrail には、Cognition のアカウントからの呼び出しを含め、そのキーに対して行われたすべてのAPIコールが記録されるため、暗号化および復号の操作について完全な監査証跡を確認できます。

<div id="faqs">
  ## よくある質問
</div>

<AccordionGroup>
  <Accordion title="どのデータが KMS キーで暗号化されますか？">
    KMS キーは、専用テナント内の Amazon S3 に保存される顧客データ (セッションデータや VM スナップショットを含む) の暗号化に使用されます。
  </Accordion>

  <Accordion title="別の AWS リージョンの KMS キーは利用できますか？">
    いいえ。KMS キーは、Devin のデプロイメントと同じ AWS リージョンに存在している必要があります。テナントのリージョンについては、Cognition の担当アカウントチームにお問い合わせください。
  </Accordion>

  <Accordion title="KMS キーを提供しない場合はどうなりますか？">
    Cognition がお客様に代わって暗号化キーを作成し、管理します。データはすべて保存時に暗号化されます。CMK を使用すると、キーをお客様が直接管理できます。
  </Accordion>

  <Accordion title="CMK は Enterprise Cloud デプロイメントで利用できますか？">
    いいえ。現在、CMK を利用できるのは Enterprise Dedicated Deployment デプロイメントのみです。
  </Accordion>

  <Accordion title="初期セットアップ後に KMS キーを変更できますか？">
    はい。テナントの KMS キー ARN を更新するには、Cognition の担当アカウントチームにお問い合わせください。すでに暗号化されているデータは、再暗号化しない限り、元のキーで暗号化されたままになります。
  </Accordion>
</AccordionGroup>
