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

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

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

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

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

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

Neptune DB インスタンスの暗号化の有効化

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

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

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

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

重要

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

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

暗号化された Neptune DB インスタンスを作成するIAMユーザーまたはロールには、KMSキーに対して少なくとも次のアクセス許可が必要です。

  • "kms:Encrypt"

  • "kms:Decrypt"

  • "kms:GenerateDataKey"

  • "kms:ReEncryptTo"

  • "kms:GenerateDataKeyWithoutPlaintext"

  • "kms:CreateGrant"

  • "kms:ReEncryptFrom"

  • "kms:DescribeKey"

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

{ "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 番目のステートメントは、必要なすべての へのアクセスを提供します。 AWS KMS APIs このロールの は、RDSサービスプリンシパルにスコープダウンされます。

  • 3 番目のステートメントでは、このキーを他のロールで使用できないように強制することで、セキュリティを強化します。 AWS サービス。

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

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

Neptune 暗号化の制約事項

Neptune クラスターの暗号化には、以下の制約事項があります。

  • 暗号化されていない DB クラスターを暗号化された DB クラスターに変換することはできません。

    ただし、暗号化されていない DB クラスタースナップショットを暗号化された DB クラスターに復元することができます。これを行うには、KMS暗号化されていない DB クラスタースナップショットから復元するときに暗号化キーを指定します。

  • 暗号化されていない DB インスタンスを暗号化された DB クラスターに変換することはできません。DB インスタンスの暗号化は、DB インスタンスの作成時にのみ有効にすることができます。

  • 暗号化された DB インスタンスを変更して暗号化を無効にすることはできません。

  • 暗号化されていない DB インスタンスのリードレプリカを暗号化することや、暗号化された DB インスタンスのリードレプリカを暗号化しないことは設定できません。

  • 暗号化されたリードレプリカは、ソース DB インスタンスと同じキーで暗号化する必要があります。