

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

# 保管中の Neptune リソースの暗号化
<a name="encrypt"></a>

Data-at-rest暗号化が AWS 推奨されます。詳細については、[Data-at-RestData-in-Transit暗号化](https://docs.aws.amazon.com/whitepapers/latest/logical-separation/encrypting-data-at-rest-and--in-transit.html)」を参照してください。新しい Neptune DB クラスターまたは新しい Neptune グローバル DB を作成すると、 AWS コンソールで暗号化が適用されます。これにより、データ保護のレイヤーが追加されます。基盤となるストレージへの不正アクセスからデータを保護し、data-at-rest暗号化に関するコンプライアンス要件を満たすのに役立ちます。

Neptune リソースの暗号化と復号に使用されるキーを管理するには、 [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/). AWS KMS combines を使用して、安全で可用性の高いハードウェアとソフトウェアを使用し、クラウド向けにスケーリングされたキー管理システムを提供します。を使用すると AWS KMS、暗号化キーを作成し、これらのキーの使用方法を制御するポリシーを定義できます。 は AWS KMS をサポートしているため AWS CloudTrail、キーの使用状況を監査して、キーが適切に使用されていることを確認できます。

保管時に、関連するすべてのログ、バックアップ、スナップショットは、暗号化された Neptune DB クラスターに対して暗号化されます。Neptune 暗号化は、Amazon CloudWatch にエクスポートされたログには適用されません。

## Neptune リソースの暗号化
<a name="encrypt-enable"></a>

Neptune DB クラスターまたは Neptune グローバル DB を作成するときに、暗号化 AWS KMS キーのキー識別子を指定できます。 AWS KMS キー識別子を指定しない場合、Neptune はリージョンでデフォルトの Amazon RDS 暗号化キー (`aws/rds`) を使用します。 AWS KMS は AWS 、アカウント内のリージョンごとにデフォルトの暗号化キーを作成します。Neptune Global クラスターの場合、そのクラスターにはリージョンと同じ数の AWS KMS キーがあります。

Neptune リソースを作成した後は、そのリソースの暗号化キーを変更することはできません。したがって、Neptune リソースを作成する前に、必ず暗号化キーの要件を確認してください。別の AWS KMS キーが必要な場合は、既存の Neptune DB クラスターのスナップショットを使用して、別の AWS KMS キーを持つ新しいキーを作成できます (「」を参照[DB クラスタースナップショットの復元](backup-restore-restore-snapshot.md))。

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

**重要**  
Neptune が Neptune DB クラスターの暗号化キーへのアクセスを失った場合 - 例えば、キーへの Neptune アクセスが取り消された場合 - 暗号化されたクラスターは終了状態になり、バックアップからのみ復元できます。データベース内の暗号化されたデータの損失を防ぐために、暗号化された 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"`

必要なアクセス許可を含むキーポリシーの例 (`us-east-1`リージョンの場合) を次に示します。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id": "key-consolepolicy-3",
  "Statement": [
    {
      "Sid": "Enable Permissions for root principal",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{{123456789012}}:root"
      },
      "Action": "kms:*",
      "Resource": "*"
    },
    {
      "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"
        }
      }
    }
  ]
}
```

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

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

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

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

Neptune 暗号化には以下の制限があります。
+ 暗号化されていない Neptune DB クラスターを暗号化されたクラスターに変換することはできません。Neptune DB クラスターの暗号化は、作成時にのみ有効にできます。ただし、暗号化されていない Neptune DB クラスタースナップショットは、暗号化された Neptune DB クラスターに復元できます。これを行うには、暗号化されていない Neptune DB クラスタースナップショットから復元するときに KMS 暗号化キーを指定します。
+ 互換性の理由から、暗号化されていない Neptune DB クラスターは CLI と AWS SDKs を介して作成できます。コンソールでは、暗号化された Neptune DB クラスターの作成のみが許可されます。
+ 暗号化された Neptune DB クラスターと暗号化されていない Neptune DB クラスターを同じ Neptune グローバル DB に混在させることはできません。すべてのクラスターが暗号化されているか、すべてのクラスターが暗号化されていません。これは Neptune グローバル DB 設定で適用されます。