@@ -6,40 +6,46 @@ Network Security
6
6
7
7
.. default-domain:: mongodb
8
8
9
+ .. facet::
10
+ :name: genre
11
+ :values: reference
12
+
13
+ .. meta::
14
+ :keywords: atlas architecture center
15
+ :description: Learn about the network security configurations that Atlas supports.
16
+
9
17
.. contents:: On this page
10
18
:local:
11
19
:backlinks: none
12
20
:depth: 1
13
21
:class: onecol
14
22
15
- {+service+} provides secure defaults for your database deployments
16
- such as:
23
+ {+service+} provides secure network configuration defaults for your
24
+ database deployments, such as:
17
25
18
26
- Mandatory |tls-ssl| connection encryption
19
27
- {+vpc+}\s for all projects with one-or-more {+Dedicated-clusters+}
20
- - Access-list-based authentication which only accepts connections from
21
- sources you explicitly declare
28
+ - Authentication that uses {+ip-access-list+}s and only accepts connections
29
+ from sources you explicitly declare
22
30
23
- You can further configure these protections to meet your unique
24
- security needs and preferences.
31
+ You can further configure these protections to meet your unique security
32
+ needs and preferences.
25
33
26
- Use the basic guidance on this page to plan the network security
27
- configuration for your {+clusters+}.
34
+ Use the recommendations on this page to plan for the network security
35
+ configuration of your {+clusters+}.
28
36
29
37
{+service+} Features for Network Security
30
38
-----------------------------------------
31
39
32
40
{+service+} enforces |tls-ssl| encryption for all connections to your
33
41
databases.
34
42
35
- All {+service+} projects with one or more M10+ dedicated {+clusters+}
36
- receive their own dedicated |vpc| on {+aws+} or {+gcp+} (or {+vnet+} if you use
37
- |azure|). {+service+} deploys all dedicated clusters inside this |vpc|
38
- or {+vnet+}.
43
+ All {+service+} projects with one or more M10+ dedicated {+clusters+} receive
44
+ their own dedicated |vpc| on {+aws+} or {+gcp+} (or {+vnet+} if you use |azure|).
45
+ {+service+} deploys all dedicated clusters inside this |vpc| or {+vnet+}.
39
46
40
- By default, this |vpc| or {+vnet+} allows no inbound access to
41
- {+service+}. You must explicitly enable access by one of the
42
- following methods:
47
+ By default, this |vpc| or {+vnet+} allows no inbound access to {+service+}.
48
+ You must explicitly enable access by one of the following methods:
43
49
44
50
- Add public IP addresses to your {+ip-access-list+}
45
51
- Use |vpc| / {+vnet+} peering to add private IP addresses
@@ -50,24 +56,23 @@ following methods:
50
56
51
57
{+service+} enforces mandatory |tls| encryption of connections to your
52
58
databases. |tls| 1.2 is the default protocol; you can select |tls| 1.1
53
- or |tls| 1.0 if necessary. For more information , see the
59
+ or |tls| 1.0 if necessary. To learn more , see the
54
60
:guilabel:`Set Minimum TLS Protocol Version` section of
55
- :ref:`Configure Additional Setting
61
+ :ref:`Configure Additional Settings
56
62
<create-cluster-additional-settings>`.
57
63
58
64
{+ip-access-list+}s
59
- ~~~~~~~~~~~~~~~~~~~~
65
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60
66
61
67
As a |service| administrator, you can:
62
68
63
69
You can configure {+ip-access-list+}s to limit which IP addresses can
64
- attempt authentication to your database. Your {+service+} {+clusters+}
70
+ attempt authentication to your database.
65
71
66
72
Your {+service+} {+clusters+} allow access only from the IP addresses
67
- and |cidr| block IP ranges that you add to your
68
- {+ip-access-list+}. Application servers and other clients cannot
69
- access your {+service+} {+clusters+} if their IP addresses aren't
70
- included in your {+ip-access-list+}.
73
+ and |cidr| block IP ranges that you add to your {+ip-access-list+}.
74
+ Application servers and other clients can't access your {+service+}
75
+ {+clusters+} if their IP addresses aren't included in your {+ip-access-list+}.
71
76
72
77
You can configure :atlas:`temporary access list entries
73
78
</security/ip-access-list/#add-ip-access-list-entries>`
@@ -96,40 +101,38 @@ cases of {+cluster+} changes such as :ref:`vertical scaling
96
101
<sizing-auto-scaling>`,
97
102
:atlas:`topology </reference/glossary/#std-term-topology>` changes, or
98
103
:ref:`maintenance events <configure-maintenance-window>`. However,
99
- certain topology changes – such as a :ref:`conversion from replica set
104
+ certain topology changes, such as a :ref:`conversion from replica set
100
105
to sharded cluster <scale-cluster-sharding>`, the
101
106
:ref:`addition of shards <scale-cluster-shardNum>`, or a :ref:`region
102
- change <scale-cluster-region>` – require that you use new IP
103
- addresses.
107
+ change <scale-cluster-region>` require that you use new IP addresses.
104
108
105
109
VPC/{+vnet+} Peering
106
110
~~~~~~~~~~~~~~~~~~~~~~~~~~
107
111
108
- Network peering allows you to connect your own |vpc|\s with an Atlas
112
+ Network peering allows you to connect your own |vpc|\s with |a-service|
109
113
|vpc| to route traffic privately and isolate your data flow from the
110
114
public Internet.
111
115
112
116
Most operations performed over a |vpc| connection originate from your
113
117
application environment, minimizing the need for {+service+} to make
114
- outbound access requests to peer |vpc|\s. However, if you have
115
- configured a peer |vpc| to use |ldap| authentication, you must enbale
116
- {+service+} to connect to the authentication endpoint of your peer
117
- |vpc| over the |ldap| protocol.
118
+ outbound access requests to peer |vpc|\s. However, if you configure a
119
+ peer |vpc| to use |ldap| authentication, you must enable {+service+} to
120
+ connect to the authentication endpoint of your peer |vpc| over the |ldap|
121
+ protocol.
118
122
119
123
You can choose your {+service+} |cidr| block with the |vpc| peering wizard
120
124
before you deploy your first {+cluster+}. The {+service+} |vpc| |cidr|
121
125
block must not overlap with the |cidr| block of any |vpc| you intend to
122
126
peer to. {+service+} limits the number of MongoDB instances per |vpc|
123
- based on the |cidr| block; for example, a project with a |cidr| block of
127
+ based on the |cidr| block. For example, a project with a |cidr| block of
124
128
``/24`` is limited to the equivalent of 273-node replica sets.
125
129
126
130
We recommend the following as best practices:
127
131
128
- - To maintain tight network trust boundaries, configure mitigations
129
- such as security groups and :aws:`network ACLs
130
- <vpc/latest/userguide/vpc-network-acls.html>` to prevent inbound
131
- access to systems inside your application |vpc|\s from the {+service+}-side
132
- |vpc|.
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|.
133
136
134
137
- Create new |vpc|\s to act as intermediaries between sensitive
135
138
application infrastructure and your {+service+} |vpc|\s. |vpc|\s are
@@ -141,16 +144,16 @@ Private Endpoints
141
144
142
145
A private endpoint facilitates a one-way connection from your own |vpc|
143
146
to your {+service+} |vpc|, without permitting {+service+} to initiate a
144
- reciprocal connection. This allows you to make use of secure
145
- connections to {+service+} without extending your network trust
146
- boundary. The following private endpoints are available:
147
+ reciprocal connection. This allows you to make use of secure connections
148
+ to {+service+} without extending your network trust boundary. The following
149
+ private endpoints are available:
147
150
148
- - {+aws+} :aws:`PrivateLink <vpc/latest/userguide/endpoint-services-overview.html>`,
149
- for connections from {+aws+} VPCs
150
- - {+azure+} :azure:`Private Link <private-link/private-link/ overview>`,
151
+ - {+aws+} :aws:`PrivateLink </ vpc/latest/userguide/endpoint-services-overview.html>`,
152
+ for connections from {+aws+} |vpc|\s
153
+ - {+azure+} :azure:`Private Link </ private-link/private-link- overview>`,
151
154
for connections from {+azure+} {+vnet+}s
152
- - :gcp:`Private Service Connect <vpc/docs/private-service-connect>`, for
153
- connections from Google Cloud
155
+ - :gcp:`Private Service Connect </ vpc/docs/private-service-connect>`, for
156
+ connections from {+gcp+}
154
157
155
158
Examples
156
159
--------
@@ -191,7 +194,7 @@ These examples also apply other recommended configurations, including:
191
194
</connect-atlas-cli/>` using the steps for :guilabel:`Programmatic Use`.
192
195
193
196
Create an {+ip-access-list+} Entry
194
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
197
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
195
198
196
199
Run the following command for each connection you want to
197
200
allow. Change the entries to use the appropriate options and
@@ -249,8 +252,7 @@ These examples also apply other recommended configurations, including:
249
252
250
253
.. note::
251
254
252
- Before you
253
- can create resources with Terraform, you must:
255
+ Before you can create resources with Terraform, you must:
254
256
255
257
- :atlas:`Create your paying organization
256
258
</billing/#configure-a-paying-organization>` and :atlas:`create an API key </configure-api-access/>` for the
@@ -266,14 +268,14 @@ These examples also apply other recommended configurations, including:
266
268
<https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli>`__
267
269
268
270
Create an {+ip-access-list+} Entry
269
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
271
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
270
272
271
273
To add an entry to your {+ip-access-list+}, create the following
272
274
file and place it in the directory of the project you want to
273
275
grant access to. Change the IDs and names to use your values:
274
276
275
277
accessEntryForAddress1.tf
276
- `````````````````````````
278
+ `````````````````````````````
277
279
278
280
.. include:: /includes/examples/tf-example-access-entry-for-add-1.rst
279
281
@@ -282,21 +284,21 @@ These examples also apply other recommended configurations, including:
282
284
283
285
.. code-block::
284
286
285
- terraform init
287
+ terraform init
286
288
287
289
Run the following command to view the Terraform plan:
288
290
289
291
.. code-block::
290
292
291
- terraform plan
293
+ terraform plan
292
294
293
295
Run the following command to add one entry to the {+ip-access-list+}
294
296
for your project. The command uses the file and the
295
297
|service-terraform| to add the entry.
296
298
297
299
.. code-block::
298
300
299
- terraform apply
301
+ terraform apply
300
302
301
303
When prompted, type ``yes`` and press :kbd:`Enter` to apply
302
304
the configuration.
@@ -314,34 +316,34 @@ These examples also apply other recommended configurations, including:
314
316
315
317
.. include:: /includes/examples/tf-example-vpc-connection.rst
316
318
317
- After you create the files , navigate to your project directory
319
+ After you create the file , navigate to your project directory
318
320
and run the following command to initialize Terraform:
319
321
320
322
.. code-block::
321
323
322
- terraform init
324
+ terraform init
323
325
324
326
Run the following command to view the Terraform plan:
325
327
326
328
.. code-block::
327
329
328
- terraform plan
330
+ terraform plan
329
331
330
332
Run the following command to add a |vpc| peering connection from
331
333
your application to your project. The command uses the file and
332
334
the |service-terraform| to add the entry.
333
335
334
336
.. code-block::
335
337
336
- terraform apply
338
+ terraform apply
337
339
338
340
When prompted, type ``yes`` and press :kbd:`Enter` to apply
339
341
the configuration.
340
342
341
343
Create a Private Link
342
344
~~~~~~~~~~~~~~~~~~~~~
343
345
344
- To create a private link from your application |vpc| to
346
+ To create a PrivateLink from your application |vpc| to
345
347
your {+service+} |vpc|, create the following file and place it in
346
348
the directory of the project you want to connect to. Change
347
349
the IDs and names to use your values:
@@ -351,26 +353,26 @@ These examples also apply other recommended configurations, including:
351
353
352
354
.. include:: /includes/examples/tf-example-private-link.rst
353
355
354
- After you create the files , navigate to your project directory
356
+ After you create the file , navigate to your project directory
355
357
and run the following command to initialize Terraform:
356
358
357
359
.. code-block::
358
360
359
- terraform init
361
+ terraform init
360
362
361
363
Run the following command to view the Terraform plan:
362
364
363
365
.. code-block::
364
366
365
- terraform plan
367
+ terraform plan
366
368
367
- Run the following command to add a privatelink endpoint from
369
+ Run the following command to add a PrivateLink endpoint from
368
370
your application to your project. The command uses the file and
369
371
the |service-terraform| to add the entry.
370
372
371
373
.. code-block::
372
374
373
- terraform apply
375
+ terraform apply
374
376
375
377
When prompted, type ``yes`` and press :kbd:`Enter` to apply
376
378
the configuration.
0 commit comments