View a markdown version of this page

저장 시 Neptune 리소스 암호화 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

저장 시 Neptune 리소스 암호화

Data-at-rest 암호화가 AWS 권장 사항입니다. 자세한 내용은 Data-at-Rest 및 Data-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 글로벌 클러스터의 경우 해당 클러스터에는 리전 수만큼의 AWS KMS 키가 있습니다.

Neptune 리소스를 생성한 후에는 해당 리소스의 암호화 키를 변경할 수 없습니다. 따라서 Neptune 리소스를 생성하기 전에 암호화 키 요구 사항을 결정해야 합니다. 다른 AWS KMS 키가 필요한 경우 기존 Neptune DB 클러스터의 스냅샷을 사용하여 다른 AWS KMS 키로 새 키를 생성할 수 있습니다( 참조DB 클러스터 스냅샷에서 복원).

다른 계정의 키 Amazon 리소스 이름(ARN)을 사용하여 Neptune 리소스를 암호화할 수 있습니다. AWS KMS 암호화 키를 소유한 계정과 동일한 AWS 계정으로 Neptune 리소스를 생성하는 경우 전달하는 AWS KMS 키 ID는 키의 ARN 대신 AWS KMS 키 별칭이 될 수 있습니다.

중요

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" } } } ] }
  • 이 정책의 첫 번째 문은 선택 사항으로, 사용자의 루트 보안 주체에 대한 액세스 권한을 부여합니다.

  • 두 번째 문은 RDS 서비스 보안 주체로 범위가 지정된이 역할에 필요한 모든 AWS KMS APIs에 대한 액세스를 제공합니다.

  • 세 번째 문은 다른 AWS 서비스에 대해이 역할에서이 키를 사용할 수 없도록 하여 보안을 강화합니다.

다음을 추가하여 createGrant 권한 범위를 더 좁힐 수도 있습니다.

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

Neptune 암호화의 제한 사항

Neptune 암호화에는 다음과 같은 제한 사항이 있습니다.

  • 암호화되지 않은 Neptune DB 클러스터는 암호화된 클러스터로 변환할 수 없습니다. Neptune DB 클러스터가 생성될 때만 암호화를 활성화할 수 있습니다. 그러나 암호화되지 않은 Neptune DB 클러스터 스냅샷을 암호화된 Neptune DB 클러스터로 복원할 수 있습니다. 이렇게 하려면 암호화되지 않은 Neptune DB 클러스터 스냅샷에서 복원할 때 KMS 암호화 키를 지정합니다.

  • 호환성을 위해 CLI 및 AWS SDKs. 콘솔은 암호화된 Neptune DB 클러스터 생성만 허용합니다.

  • 동일한 Neptune Global DB에서 암호화된 DB 클러스터와 암호화되지 않은 Neptune DB 클러스터를 혼합할 수 없습니다. 모든 클러스터가 암호화되거나 모든 클러스터가 암호화되지 않습니다. 이는 Neptune 글로벌 DB 구성에서 적용됩니다.