Amazon Neptune databse に保存されているデータの暗号化 - Amazon Neptune

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

Amazon Neptune databse に保存されているデータの暗号化

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

Neptune リソースの暗号化と復号に使用されるキーを管理するには、 AWS Key Management Service (AWS KMS). 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 「サービスの使用方法 AWS KMS」を参照してください。 AWS Key Management Service

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

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

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

暗号化された 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 インスタンスのバックアップは常に有効にしておくことを強くお勧めします。

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

暗号化された 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 インスタンスと同じキーで暗号化する必要があります。