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