키 관리 서비스를 사용하여 데이터 암호화
Atlas는 기본적으로 모든 미사용 클러스터 스토리지와 스냅샷 볼륨을 암호화합니다. 클라우드 제공자의 KMS 를 MongoDB 암호화 storage engine 과 함께 사용하여 또 다른 보안 계층을 추가할 수 있습니다.
Atlas의 미사용 데이터 암호화를 위해 다음 고객 KMS 제공자 중 하나 이상을 사용할 수 있습니다.
참고
키 관리 제공자는 cluster cloud 서비스 제공자와 일치하지 않아도 됩니다.
Atlas에서 KMS 를 사용하는 방법에 대해 자세히 알아보려면 다음을 참조하세요.
Atlas Kubernetes Operator 를 사용하여 KMS 암호화 를 관리 하려면 AtlasProject
Custom Resource(사용자 spec.encryptionAtRest
지정 리소스) 에 대한 매개 변수를 지정하고 업데이트 할 수 있습니다. 지원되는 사용자 지정 리소스 중 하나에서 spec
필드 를 변경할 때마다 Atlas Kubernetes Operator 가 해당 Atlas 구성을 생성하거나 업데이트 합니다.
전제 조건
에서 를 Amazon Web Services KMS 사용하여 미사용 데이터 미사용 데이터 암호화 를 구성하려면 Atlas Kubernetes Operator 다음이 필요합니다.
Atlas Kubernetes Operator가 배포된 실행 중인 Kubernetes 클러스터입니다.
Atlas에서
Project Owner
또는Organization Owner
역할.에 대한 유효한 키 관리 자격 증명 및 암호화 키 Amazon Web Services KMS. 학습 내용 은 Amazon Web Services 에서 고객 관리형 키를 활성화하기 위한 전제 조건 을 참조하세요.
Atlas 계정에 대해 수임된 IAM 역할 . Atlas Kubernetes Operator 로 가정된 IAM 역할 을 설정하다 하려면 통합 클라우드 제공자 통합 설정 을 참조하세요. Amazon Web Services 암호화 키 의 역할 기반 액세스 에 학습 보려면 Amazon Web Services KMS 로 고객 키 관리를 참조하세요.
중요
암호화 키를 역할 기반 액세스로 전환하면 해당 프로젝트의 암호화 키에 대해 역할 기반 액세스 구성을 취소하고 자격 증명 기반 액세스로 되돌릴 수 없습니다.
Atlas Kubernetes Operator 에서 Azure Key Vault를 사용하여 미사용 데이터 미사용 데이터 암호화 를 구성하려면 다음이 필요합니다.
Atlas Kubernetes Operator가 배포된 실행 중인 Kubernetes 클러스터입니다.
Atlas에서
Project Owner
또는Organization Owner
역할.Azure Key Vault 의 유효한 키 관리 자격 증명 및 암호화 키 . 학습 내용 은 Azure 에서 고객 관리 키를 활성화하기 위한 전제 조건을 참조하세요.
에서 를 사용하여 미사용 데이터 미사용 데이터 암호화 를 구성하려면 Google Cloud Platform KMS Atlas Kubernetes Operator다음이 필요합니다.
Atlas Kubernetes Operator가 배포된 실행 중인 Kubernetes 클러스터입니다.
Atlas에서
Project Owner
또는Organization Owner
역할.의 Google Cloud Platform KMS 유효한 키 관리 자격 증명 및 암호화 키 . 학습 내용 은 Google Cloud Platform 에서 고객 관리형 키를 활성화하기 위한 전제 조건을 참조하세요.
절차
다음 절차에 따라 고객 managed 키를 사용하여 Atlas 데이터를 암호화합니다.
Amazon Web Services Amazon Web Services 자격 증명 을 사용하여 시크릿을 생성합니다.
다음 매개변수의 값을 사용하여 시크릿을 생성합니다.
Parameter | 설명 |
---|---|
| 마스터 키를 암호화하고 해독하는 데 사용하는 Amazon Web Services 고객 마스터 키를 식별하는 고유한 영숫자 입니다.string MongoDB |
| 고객 마스터 키를 Amazon Web Services 관리 수 있는 권한이 Amazon Web Services 있는 IAM 역할 을 식별하는 고유한 Amazon Web Services ARN 입니다. 이 값을 찾으려면 다음을 수행합니다.
Amazon Web Services 는 Summary 섹션에 ARN 을 표시합니다. |
시크릿을 생성하고 레이블을 지정하려면 Amazon Web Services 자격 증명 을 사용하여 다음 명령을 실행 합니다.
kubectl create secret generic aws-ear-creds \ --from-literal="CustomerMasterKeyID=<customer-master-key>" \ --from-literal="RoleId=<aws-arn>" \ -n mongodb-atlas-system
kubectl label secret aws-ear-creds atlas.mongodb.com/type=credentials -n mongodb-atlas-system
spec.encryptionAtRest.awsKms
매개변수를 지정합니다.
spec.encryptionAtRest.awsKms
다음 매개변수를 포함하여 사용자AtlasProject
spec.encryptionAtRest
지정 리소스 의 배열에 객체를 추가합니다.Parameter설명spec.encryptionAtRest.awsKms.enabled
이 프로젝트에서 AWS KMS 를 사용하여 미사용 데이터를 암호화하는지 여부를 나타내는 플래그입니다. AWS KMS 를 사용하여 미사용 데이터 암호화를 활성화하려면 이 매개 변수를
true
로 설정합니다. AWS KMS 를 사용하여 미사용 데이터 암호화를 비활성화하려면 이 매개 변수를false
로 설정합니다. Amazon Web Services KMS를 사용하여 미사용 데이터 암호화를 비활성화하면 Atlas Kubernetes Operator가 구성 세부 정보를 제거합니다.spec.encryptionAtRest.awsKms.region
고객 마스터 키가 있는 Amazon Web Services 리전 을 나타내는 레이블입니다.
spec.encryptionAtRest.awsKms.secretRef.name
Amazon Web Services 자격 증명 이 포함된 시크릿의 이름입니다.
spec.encryptionAtRest.awsKms.secretRef.namespace
AWS 자격 증명이 포함된 네임스페이스입니다. 지정하지 않으면 이 매개변수는 기본적으로
AtlasProject
사용자 지정 리소스의 네임스페이스로 사용됩니다.시크릿 을 사용해야
AccessKeyID
SecretAccessKey
CustomerMasterKeyID
RoleId
합니다. , , 및 에 대한 값을 포함합니다.다음 명령을 실행합니다:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project encryptionAtRest: awsKms: enabled: true region: us-east-1 secretRef: name: aws-ear-creds namespace: mongodb-atlas-system EOF
고객 managed 키를 사용하여 cluster의 미사용 데이터 암호화를 활성화하세요.
프로젝트의 고객 관리형 키를 사용하여 미사용 데이터 암호화를 활성화한 후에는 클러스터 수준에서 활성화하여 데이터를 암호화해야 합니다.
다음 명령을 실행하여 Custom Resource (사용자 지정 리소스)에 Amazon Web Services 을(를) 추가하면 이 클러스터 의 spec.deploymentSpec.encryptionAtRestProvider
키를 사용하여 미사용 데이터 미사용 데이터 AtlasDeployment
암호화 를 활성화할 수 있습니다.
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-cluster spec: name: Test Atlas Operator Cluster DeploymentSpec: encryptionAtRestProvider: "AWS" EOF
Azure 자격증명 을 사용하여 비밀을 만듭니다.
다음 매개변수의 값을 사용하여 시크릿을 생성합니다.
Parameter | 설명 |
---|---|
| Azure Key Vault를 식별하는 고유 키가 있는 웹 주소 입니다. |
| 키가 포함된 Key Azure Vault를 식별하는 고유 입니다.string |
|
|
| 구독 을 식별하는 Azure 36고유한 -16진수 입니다.string Azure 는 구독의 세부 정보 페이지에 구독 ID 를 표시합니다. |
시크릿을 만들고 레이블을 지정하려면 Azure 자격 증명 을 사용하여 다음 명령을 실행 합니다.
kubectl create secret generic azure-ear-creds \ --from-literal="KeyIdentifier=<web-address>" \ --from-literal="KeyVaultName=<key-vault>" \ --from-literal="Secret=<secret>" \ --from-literal="SubscriptionID=<subscription>" \ -n mongodb-atlas-system
kubectl label secret azure-ear-creds atlas.mongodb.com/type=credentials -n mongodb-atlas-system
spec.encryptionAtRest.azureKeyVault
매개변수를 지정합니다.
spec.encryptionAtRest.azureKeyVault
다음 매개변수를 포함하여 사용자AtlasProject
spec.encryptionAtRest
지정 리소스 의 배열에 객체를 추가합니다.Parameter설명spec.encryptionAtRest.azureKeyVault.azureEnvironment
Azure 계정 자격 증명이 있는 Azure 배포 위치입니다. 유효한 값은
AZURE
,AZURE_CHINA
및AZURE_GERMANY
입니다.spec.encryptionAtRest.azureKeyVault.clientID
Azure 애플리케이션을 식별하는 고유한 36자리 16진수 문자열입니다.
spec.encryptionAtRest.azureKeyVault.
enabled
이 프로젝트 가 Azure Key Vault를 사용하여 미사용 미사용 데이터 를 암호화하는지 여부를 나타내는 플래그입니다. Azure Key Vault를 사용하여 미사용 데이터 미사용 데이터 암호화 를 활성화 하려면 이 매개 변수를
true
로 설정하다 합니다. Azure Key Vault를 사용하여 미사용 미사용 데이터 암호화 를 비활성화하려면 이 매개 변수를false
로 설정하다 합니다. Azure Key Vault를 사용하여 미사용 데이터 미사용 데이터 암호화 를 비활성화하면 Atlas Kubernetes Operator 가 구성 세부 정보를 제거합니다.spec.encryptionAtRest.azureKeyVault.resourceGroupName
Azure Key Vault가 포함된 Azure 리소스 그룹을 식별하는 레이블입니다. Azure 는 리소스 그룹의 세부 정보 페이지에 리소스 그룹 이름을 표시합니다.
spec.encryptionAtRest.azureKeyVault.secretRef.name
Azure 자격 증명 이 포함된 시크릿의 이름입니다.
spec.encryptionAtRest.azureKeyVault.secretRef.namespace
Azure 자격 증명이 포함된 네임스페이스입니다. 지정하지 않으면 이 매개변수는 기본적으로
AtlasProject
사용자 지정 리소스의 네임스페이스로 사용됩니다.spec.encryptionAtRest.azureKeyVault.
tenantID
Azure 구독 내에서 Azure Active Directory 테넌트를 식별하는 고유한 36자리 16진수 문자열입니다. Azure 는 테넌트 속성 페이지에 테넌트 ID를 표시합니다.
시크릿 을 사용해야
KeyVaultName
KeyIdentifier
Secret
SubscriptionID
합니다. , , 및 에 대한 값을 포함합니다.다음 명령을 실행합니다:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project encryptionAtRest: azureKeyVault: azureEnvironment: AZURE clientID: "12345678-90ab-cdef-1234-567890abcdef" enabled: true resourceGroupName: "myResourceGroup" tenantID: "e8e4b6ba-ff32-4c88-a9af-EXAMPLEID" secretRef: name: azure-ear-creds namespace: mongodb-atlas-system EOF
고객 managed 키를 사용하여 cluster의 미사용 데이터 암호화를 활성화하세요.
프로젝트의 고객 관리형 키를 사용하여 미사용 데이터 암호화를 활성화한 후에는 클러스터 수준에서 활성화하여 데이터를 암호화해야 합니다.
다음 명령을 실행하여 spec.deploymentSpec.encryptionAtRestProvider
을(를) AtlasDeployment
Custom Resource(사용자 지정 리소스)에 추가하면 이 클러스터 에 대해 Azure 키를 사용하여 미사용 데이터 미사용 데이터 암호화 를 활성화할 수 있습니다.
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-cluster spec: name: Test Atlas Operator Cluster DeploymentSpec: encryptionAtRestProvider: "AZURE" EOF
Google Cloud Platform Google Cloud Platform 자격 증명 을 사용하여 시크릿을 생성합니다.
다음 매개변수의 값을 사용하여 시크릿을 생성합니다.
Parameter | 설명 |
---|---|
| 의 KMS 키 버전 리소스 를 표시하는 고유한 리소스 경로입니다.ID Google Cloud Platform |
| JSON Google Cloud Platform KMS 계정의 자격 증명 Google Cloud Platform 이 포함된 파일 입니다. 중요: JSON 객체 의 형식을 올바르게 지정해야 합니다. 파일 내에서 자격 증명 필드를 올바르게 들여쓰는지 확인합니다. |
다음 예시 는 ServiceAccountKey
JSON 파일 의 내용을 보여줍니다.
{ "type": "service_account", "project_id": "my-project-common-0", "private_key_id": "e120598ea4f88249469fcdd75a9a785c1bb3\", "private_key": "-----BEGIN PRIVATE KEY-----\\nMIIEuwIBA(truncated)SfecnS0mT94D9\\n-----END PRIVATE KEY-----\\n\", "client_email": "my-email-kms-0@my-project-common-0.iam.gserviceaccount.com\", "client_id": "10180967717292066", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/my-email-kms-0%40my-project-common-0.iam.gserviceaccount.com" "universe_domain": "googleapis.com" }
시크릿을 만들고 레이블을 지정하려면 Google Cloud Platform 자격 증명 을 사용하여 다음 명령어를 실행 합니다.
kubectl create secret generic azure-ear-creds \ --from-literal="KeyVersionResourceID=<resource-id>" \ --from-file="ServiceAccountKey=<your-service-account-key-files.json>" \ -n mongodb-atlas-system
kubectl label secret gcp-ear-creds atlas.mongodb.com/type=credentials -n mongodb-atlas-system
spec.encryptionAtRest.googleCloudKms
매개변수를 지정합니다.
spec.encryptionAtRest.googleCloudKms
다음 매개변수를 포함하여 사용자AtlasProject
spec.encryptionAtRest
지정 리소스 의 배열에 객체를 추가합니다.Parameter설명spec.encryptionAtRest.googleCloudKms.enabled
이 프로젝트가 GCP KMS 를 사용하여 미사용 데이터를 암호화하는지 여부를 나타내는 플래그입니다. GCP KMS 를 사용하여 미사용 데이터 암호화를 사용하려면 이 매개 변수를
true
로 설정합니다. GCP KMS 를 사용하여 미사용 데이터 암호화를 사용하지 않도록 설정하려면 이 매개 변수를false
로 설정합니다. Google Cloud KMS 를 사용하여 미사용 데이터 암호화를 사용하지 않도록 설정하면 Atlas Kubernetes Operator가 구성 세부 정보를 제거합니다.spec.encryptionAtRest.googleCloudKms.secretRef.name
Google Cloud Platform 자격 증명 이 포함된 시크릿의 이름입니다.
spec.encryptionAtRest.googleCloudKms.secretRef.namespace
Google Cloud 자격 증명이 포함된 네임스페이스입니다. 지정하지 않으면 이 매개변수는 기본적으로
AtlasProject
사용자 지정 리소스의 네임스페이스로 사용됩니다.시크릿 을 사용해야
KeyVersionResourceID
ServiceAccountKey
합니다. 및 에 대한 값을 포함합니다.다음 명령을 실행합니다:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project encryptionAtRest: googleCloudKms: enabled: true secretRef: name: gcp-ear-creds namespace: mongodb-atlas-system EOF
고객 managed 키를 사용하여 cluster의 미사용 데이터 암호화를 활성화하세요.
프로젝트의 고객 관리형 키를 사용하여 미사용 데이터 암호화를 활성화한 후에는 클러스터 수준에서 활성화하여 데이터를 암호화해야 합니다.
다음 명령을 실행하여 spec.deploymentSpec.encryptionAtRestProvider
AtlasDeployment
Custom Resource(사용자 지정 리소스)에 을(를) 추가하면 Google Cloud Platform 이 클러스터 의 키를 사용하여 미사용 데이터 암호화 를 활성화할 수 있습니다.
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: my-cluster spec: name: Test Atlas Operator Cluster DeploymentSpec: encryptionAtRestProvider: "GCP" EOF