

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

# Amazon Neptune データベースに保管中のデータの暗号化
<a name="encrypt"></a>

Neptune の暗号化されたインスタンスは、基になるストレージへの不正アクセスからデータを保護することで、データ保護のレイヤーを追加します。Neptune の暗号化を使用すると、クラウドにデプロイされたアプリケーションのデータ保護を強化できます。また、保管時のデータの暗号化に関するコンプライアンス要件を満たす場合にも使用できます。

Neptune リソースの暗号化と復号に使用されるキーを管理するには、 [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/). AWS KMS combines を使用して、安全で可用性の高いハードウェアとソフトウェアを使用し、クラウド向けにスケーリングされたキー管理システムを提供します。を使用すると AWS KMS、暗号化キーを作成し、これらのキーの使用方法を制御するポリシーを定義できます。 は AWS KMS をサポートしているため AWS CloudTrail、キーの使用状況を監査して、キーが適切に使用されていることを確認できます。 AWS KMS キーは、Neptune および Amazon Simple Storage Service (Amazon S3)、Amazon Elastic Block Store (Amazon EBS)、Amazon Redshift などのサポートされている AWS サービスと組み合わせて使用できます。がサポートするサービスのリストについては AWS KMS、「 *AWS Key Management Service デベロッパーガイド*」の「 [AWS のサービスの使用方法 AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/services.html)」を参照してください。

すべてのログ、バックアップ、スナップショットは、Neptune の暗号化されたインスタンス用に暗号化されます。

## Neptune DB インスタンスの暗号化の有効化
<a name="encrypt-enable"></a>

新しい Neptune DB インスタンスの暗号化を有効にするには、 コンソールの **[Enable encryption]** (暗号化の有効化) で **[Yes]** (はい) を選択します。Neptune DB インスタンスの作成については、[Amazon Neptune クラスターの作成](get-started-create-cluster.md) を参照してください。

暗号化された Neptune DB インスタンスを作成するときに、暗号化 AWS KMS キーのキー識別子を指定することもできます。 AWS KMS キー識別子を指定しない場合、Neptune は新しい Neptune DB インスタンスにデフォルトの Amazon RDS 暗号化キー (`aws/rds`) を使用します。 は AWS 、アカウントの Neptune のデフォルトの暗号化キー AWS KMS を作成します。 AWS アカウントには、 AWS リージョンごとに異なるデフォルトの暗号化キーがあります。

暗号化された Neptune DB インスタンスを作成したら、そのインスタンスの暗号化キーを変更することはできません。したがって、暗号化された Neptune DB インスタンスを作成する前に、暗号化キーの要件を確認してください。

別のアカウントのキーの Amazon リソースネーム (ARN) を使用して、Neptune DB インスタンスを暗号化できます。新しい Neptune DB インスタンスの AWS KMS 暗号化に使用される暗号化キーを所有するアカウントと同じ AWS アカウントで Neptune DB インスタンスを作成する場合、渡す AWS KMS キー ID は AWS KMS キーの ARN ではなくキーエイリアスになります。

**重要**  
Neptune が Neptune DB インスタンスの暗号化キーにアクセスできなくなった場合 (Neptune のキーへのアクセス権が失効した場合など)、暗号化された DB インスタンスは終了状態になり、バックアップからのみ復元できます。データベース内の暗号化されたデータの消失を防ぐために、暗号化された Neptune DB インスタンスのバックアップは常に有効にしておくことを強くお勧めします。

## 暗号化を有効にするときに必要なキー許可
<a name="encrypt-key-permissions"></a>

暗号化された Neptune DB インスタンスを作成する IAM ユーザーまたはロールには、少なくとも KMS キーに対する次の権限が必要です。
+ `"kms:Encrypt"`
+ `"kms:Decrypt"`
+ `"kms:GenerateDataKey"`
+ `"kms:ReEncryptTo"`
+ `"kms:GenerateDataKeyWithoutPlaintext"`
+ `"kms:CreateGrant"`
+ `"kms:ReEncryptFrom"`
+ `"kms:DescribeKey"`

次に、必要なアクセス権限を含むキーポリシーの例を示します。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "key-consolepolicy-3",
  "Statement": [
    {
      "Sid": "Allow use of the key for Neptune",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:role/NeptuneFullAccess"
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:ReEncryptTo",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:CreateGrant",
        "kms:ReEncryptFrom",
        "kms:DescribeKey"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "kms:ViaService": "rds.us-east-1.amazonaws.com"
        }
      }
    },
    {
      "Sid": "Deny use of the key for non Neptune",
      "Effect": "Deny",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:role/NeptuneFullAccess"
      },
      "Action": [
        "kms:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "kms:ViaService": "rds.us-east-1.amazonaws.com"
        }
      }
    }
  ]
}
```

------
+ 最初のステートメントは、RDS サービスプリンシパルにスコープダウンされた、このロールに必要なすべての AWS KMS APIs へのアクセスを提供します。
+ 2 番目のステートメントでは、このキーを他の AWS サービスで使用できないように強制することで、セキュリティを強化します。

以下を追加して `createGrant` 許可をさらに範囲指定することもできます。

```
"Condition": {
  "Bool": {
    "kms:GrantIsForAWSResource": true
  }
}
```

## Neptune 暗号化の制約事項
<a name="encrypt-limitations"></a>

Neptune クラスターの暗号化には、以下の制約事項があります。
+ 暗号化されていない DB クラスターを暗号化された DB クラスターに変換することはできません。

  ただし、暗号化されていない DB クラスタースナップショットを暗号化された DB クラスターに復元することができます。そのためには、暗号化されていない DB クラスタースナップショットから復元する場合は、KMS 暗号化キーを指定します。
+ 暗号化されていない DB インスタンスを暗号化された DB クラスターに変換することはできません。DB インスタンスの暗号化は、DB インスタンスの作成時にのみ有効にすることができます。
+ 暗号化された DB インスタンスを変更して暗号化を無効にすることはできません。
+ 暗号化されていない DB インスタンスのリードレプリカを暗号化することや、暗号化された DB インスタンスのリードレプリカを暗号化しないことは設定できません。
+ 暗号化されたリードレプリカは、ソース DB インスタンスと同じキーで暗号化する必要があります。