对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

使用密钥管理服务加密数据

Atlas 默认会对所有集群存储和快照卷进行静态加密。您可以将云提供商的 KMS 与 MongoDB 加密存储引擎结合使用,增加另一层安全性。

您可以使用以下一个或多个客户KMS提供商在 Atlas 中进行静态加密:

注意

密钥管理提供商无需与集群云服务提供商匹配。

要了解有关将KMS与 Atlas 结合使用的更多信息,请参阅:

要使用 Atlas Kubernetes Operator 管理您的 KMS 加密,您可以指定并更新 spec.encryptionAtRestAtlasProject 自定义资源 的参数。每次更改任何支持的自定义资源中的 spec 字段时,Atlas Kubernetes Operator 都会创建或更新相应的 Atlas 配置。

要使用Amazon Web ServicesKMS 中的Atlas Kubernetes Operator 配置静态静态加密,您需要:

重要

如果将加密密钥切换为基于角色的访问权限,就无法撤销基于角色的访问权限配置,也无法恢复该项目上基于档案的加密密钥访问权限。

通过以下步骤,使用客户托管的密钥加密您的 Atlas 数据:

1

使用以下参数的值创建密钥:

Parameter
说明

CustomerMasterKeyID

唯一的字母数字字符串,用于标识您用于加密和解密 MongoDB 主密钥的Amazon Web Services客户主密钥。

RoleID

唯一的Amazon Web Services ARN ,用于标识有权管理客户主密钥的Amazon Web Services IAMAmazon Web Services角色。 要查找该值,请执行以下操作:

  1. Go到Amazon Web Services管理控制台的Roles部分。

  2. 单击您为Atlas访问权限编辑或创建的IAM角色。

AWS 在 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
2
  1. 将 spec.encryptionAtRest.awsKms 对象添加到 spec.encryptionAtRestAtlasProject 自定义资源中的数组,包括以下参数:

    Parameter
    说明

    spec.encryptionAtRest.awsKms.enabled

    指示此项目是否使用 AWS KMS 对静态数据进行加密的标志。要使用 Amazon Web Services KMS 启用静态加密,请将此参数设置为 true。要使用 Amazon Web Services KMS 禁用静态加密,请将此参数设置为 false。如果您使用 Amazon Web Services KMS 禁用静态加密,Atlas Kubernetes Operator 将删除配置详情。

    spec.encryptionAtRest.awsKms.region

    Label that indicates the AWS region where the customer master key exists.

    spec.encryptionAtRest.awsKms.secretRef.name

    包含Amazon Web Services凭证的密钥名称。

    spec.encryptionAtRest.awsKms.secretRef.namespace

    包含您的Amazon Web Services凭证的命名空间。如果未指定,此参数默认为 AtlasProject 自定义资源的命名空间。

    您必须使用包含 AccessKeyID、SecretAccessKey、CustomerMasterKeyID 和 RoleID 值的密钥。

  2. 运行以下命令:

    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
3

运行以下命令,检查Atlas Kubernetes Operator是否检测到项目的Amazon Web Services KMS配置。

kubectl get atlasprojects my-project -n mongodbatlas-system -o=jsonpath='{.status.conditions[?(@.type=="EncryptionAtRestReady")].status}'
true
4

使用客户托管的密钥为项目启用静态加密后,必须在集群级别启用静态加密才能加密数据。

运行以下命令,将 spec.deploymentSpec.encryptionAtRestProvider 添加到 AtlasDeployment 自定义资源,从而使用您的 AWS 密钥为此集群启用静态加密:

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
给本页内容打分

在此页面上