You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Encryption in transit secures data during transmission between clients and servers, preventing unauthorized access or tampering.
21
27
In |service|, all network traffic to {+clusters+} is protected by Transport Layer Security (TLS), which is enabled by default and cannot be disabled.
22
28
Data transmitted to and between nodes is encrypted in transit using TLS, ensuring secure communication throughout.
23
29
24
-
Encryption at rest
25
-
~~~~~~~~~~~~~~~~~~~~
30
+
Encryption at Rest
31
+
``````````````````
26
32
27
33
Encryption at rest ensures that all data on disk are encrypted.
28
34
In |service|, customer data is automatically encrypted at rest.
29
35
This process utilizes your cloud provider's disk encryption, with the provider managing the encryption keys.
30
36
Additionally, you have the option to enable database-level encryption, allowing you to use :ref:`your own encryption keys <security-kms-encryption>`
31
-
via AWS Key Management Service (KMS), Google Cloud KMS, or Azure Key Vault.
37
+
with AWS Key Management Service (KMS), Google Cloud KMS, or Azure Key Vault.
32
38
33
39
In-use Encryption
34
-
~~~~~~~~~~~~~~~~~~~
40
+
`````````````````
35
41
36
42
Encryption in use secures data while it's being processed.
37
43
MongoDB has two features for encryption in use to meet your data protection needs: Client-Side Field-Level Encryption and Queryable Encryption.
38
44
39
45
Client-Side Field-Level Encryption
40
-
```````````````````````````````````
46
+
##################################
41
47
42
48
:ref:`Client-Side Field-Level Encryption <manual-csfle-feature>` (CSFLE) is an in-use encryption capability
43
49
that enables a client application to encrypt sensitive data before storing it in the MongoDB database.
44
50
Sensitive data is transparently encrypted, remains encrypted throughout its lifecycle, and is only decrypted on the client side.
45
51
46
52
Queryable Encryption
47
-
`````````````````````
53
+
####################
48
54
49
55
:ref:`Queryable Encryption <qe-manual-feature-qe>` helps organizations protect sensitive data when it is queried.
50
56
It allows applications to encrypt sensitive data on the client side, securely store it in the database, and perform equality
51
57
and range queries directly on the encrypted data.
52
58
This ensures protection for sensitive information without sacrificing the ability to perform queries on it.
59
+
60
+
Recommendations
61
+
~~~~~~~~~~~~~~~
62
+
63
+
For development and testing environments, do not enable added encryption with :ref:`your own encryption keys <security-kms-encryption>` through AWS Key Management Service (KMS), Google Cloud KMS, or Azure Key Vault. This saves costs in your
64
+
non-production environments.
65
+
66
+
For staging and production environments, enable added encryption with :ref:`your own encryption keys <security-kms-encryption>` through AWS Key Management Service (KMS), Google Cloud KMS, or Azure Key Vault for
{+service+} enforces |tls-ssl| encryption for all connections to your
41
41
databases.
@@ -51,8 +51,13 @@ You must explicitly enable access by one of the following methods:
51
51
- Use |vpc| / {+vnet+} peering to add private IP addresses
52
52
- Add private endpoints
53
53
54
+
You can also use multiple methods together for added security.
55
+
56
+
Features
57
+
~~~~~~~~
58
+
54
59
|tls|
55
-
~~~~~~~~~
60
+
```````````
56
61
57
62
{+service+} enforces mandatory |tls| encryption of connections to your
58
63
databases. |tls| 1.2 is the default protocol; you can select |tls| 1.1
@@ -62,7 +67,7 @@ or |tls| 1.0 if necessary. To learn more, see the
62
67
<create-cluster-additional-settings>`.
63
68
64
69
{+ip-access-list+}s
65
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
70
+
```````````````````````````````
66
71
67
72
As a |service| administrator, you can:
68
73
@@ -80,16 +85,8 @@ that expire automatically after a user-defined period.
80
85
81
86
You can create one access list per project.
82
87
83
-
We recommend the following as best practices:
84
-
85
-
- Use temporary access list entries in situations where team members
86
-
require access to your environment from temporary work locations.
87
-
- Define {+ip-access-list+} entries covering the smallest network segments
88
-
possible. To do this, favor individual IP addresses where possible,
89
-
and avoid large |cidr| blocks.
90
-
91
88
Firewall Configuration
92
-
~~~~~~~~~~~~~~~~~~~~~~
89
+
``````````````````````
93
90
94
91
If you use a firewall that blocks outbound network connections, you
95
92
must also configure your firewall to allow your applications to make
@@ -107,7 +104,7 @@ to sharded cluster <scale-cluster-sharding>`, the
107
104
change <scale-cluster-region>` require that you use new IP addresses.
108
105
109
106
VPC/{+vnet+} Peering
110
-
~~~~~~~~~~~~~~~~~~~~~~~~~~
107
+
`````````````````````````````
111
108
112
109
Network peering allows you to connect your own |vpc|\s with |a-service|
113
110
|vpc| to route traffic privately and isolate your data flow from the
@@ -127,20 +124,8 @@ peer to. {+service+} limits the number of MongoDB instances per |vpc|
127
124
based on the |cidr| block. For example, a project with a |cidr| block of
128
125
``/24`` is limited to the equivalent of 273-node replica sets.
129
126
130
-
We recommend the following as best practices:
131
-
132
-
- To maintain tight network trust boundaries, configure security groups
133
-
and :aws:`network ACLs </vpc/latest/userguide/vpc-network-acls.html>`
134
-
to prevent inbound access to systems inside your application |vpc|\s
135
-
from the {+service+}-side |vpc|.
136
-
137
-
- Create new |vpc|\s to act as intermediaries between sensitive
138
-
application infrastructure and your {+service+} |vpc|\s. |vpc|\s are
139
-
intransitive, allowing you to only expose those components of your
140
-
application that need access to {+service+}.
141
-
142
127
Private Endpoints
143
-
~~~~~~~~~~~~~~~~~~~~~
128
+
`````````````````
144
129
145
130
A private endpoint facilitates a one-way connection from your own |vpc|
146
131
to your {+service+} |vpc|, without permitting {+service+} to initiate a
@@ -155,6 +140,50 @@ private endpoints are available:
155
140
- :gcp:`Private Service Connect </vpc/docs/private-service-connect>`, for
156
141
connections from {+gcp+}
157
142
143
+
Recommendations for IP Access Lists
144
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
145
+
146
+
We recommend that you configure an {+ip-access-list+} for your API keys
147
+
to allow access only from trusted IP addresses.
148
+
149
+
When you configure your {+ip-access-list+}, we recommend that you:
150
+
151
+
- Use temporary access list entries in situations where team members
152
+
require access to your environment from temporary work locations.
153
+
- Define {+ip-access-list+} entries covering the smallest network segments
154
+
possible. To do this, favor individual IP addresses where possible,
155
+
and avoid large |cidr| blocks.
156
+
157
+
Recommendations for VPC/{+vnet+} Peering
158
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
159
+
160
+
If you configure |vpc| or {+vnet+} peering, we recommend that you:
161
+
162
+
- To maintain tight network trust boundaries, configure security groups
163
+
and :aws:`network ACLs </vpc/latest/userguide/vpc-network-acls.html>`
164
+
to prevent inbound access to systems inside your application |vpc|\s
165
+
from the {+service+}-side |vpc|.
166
+
167
+
- Create new |vpc|\s to act as intermediaries between sensitive
168
+
application infrastructure and your {+service+} |vpc|\s. |vpc|\s are
169
+
intransitive, allowing you to only expose those components of your
170
+
application that need access to {+service+}.
171
+
172
+
Recommendations for Private Endpoints
173
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
174
+
175
+
We recommend that you set up private endpoints for all new staging and production projects to limit the extension of your network trust
176
+
boundary.
177
+
178
+
When you configure your private endpoints, we recommend that you don't
179
+
share private endpoints across multiple projects to ensure isolation
180
+
of configuration settings.
181
+
182
+
To learn more about private endpoints
183
+
in {+service+}, including limitations and considerations, see :atlas:`Learn About Private Endpoints in {+service+} </security-private-endpoint/>`. To learn how to set up private
184
+
endpoints for your {+clusters+}, see
185
+
:atlas:`Set Up a Private Endpoint for a Dedicated Cluster </security-cluster-private-endpoint/>`.
0 commit comments