Amazon Neptune データベースに保管中のデータの暗号化 - Amazon Neptune

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

Amazon Neptune データベースに保管中のデータの暗号化

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

Neptune リソースの暗号化と復号に使用されるキーを管理するには、 AWS Key Management Service(AWS KMS).AWS KMScombines を使用して、安全で可用性の高いハードウェアとソフトウェアを使用し、クラウド向けにスケーリングされたキー管理システムを提供します。を使用すると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 Key Management Serviceデベロッパーガイド」の「 AWSのサービスの使用方法AWS KMS」を参照してください。

すべてのログ、バックアップ、スナップショットは、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"

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

JSON
{ "Version":"2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "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" } } } ] }
  • 最初のステートメントは、RDS サービスプリンシパルにスコープダウンされた、このロールに必要なすべての AWS KMSAPIs へのアクセスを提供します。

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

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

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

Neptune 暗号化の制約事項

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

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

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

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

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

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

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