View a markdown version of this page

保管中の Neptune リソースの暗号化 - Amazon Neptune

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

保管中の Neptune リソースの暗号化

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

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

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

Neptune リソースの暗号化

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 クラスタースナップショットの復元)。

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

重要

Neptune が Neptune DB クラスターの暗号化キーへのアクセスを失った場合 - たとえば、Neptune がキーへのアクセスを取り消すと、暗号化されたクラスターは終了状態になり、バックアップからのみ復元できます。データベース内の暗号化されたデータの損失を防ぐために、暗号化された Neptune DB クラスターのバックアップを常に有効にすることを強くお勧めします。

暗号化を有効にするときに必要なキー許可

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 暗号化の制約事項

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 設定で適用されます。