forked from Azure/review-checklists
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure_storage_checklist.es.json
566 lines (566 loc) · 32.3 KB
/
azure_storage_checklist.es.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
{
"categories": [
{
"name": "Gestión de identidades y accesos"
},
{
"name": "Topología de red y conectividad"
},
{
"name": "BC y RD"
},
{
"name": "Gobernanza y seguridad"
},
{
"name": "Gobernanza de costos"
},
{
"name": "Gestión de Operaciones"
},
{
"name": "Implementación de aplicaciones"
},
{
"name": "Seguridad"
}
],
"items": [
{
"category": "Seguridad",
"description": "Aplicación de las instrucciones del banco de pruebas de seguridad en la nube de Microsoft relacionadas con el almacenamiento",
"guid": "d237de14-3b16-4c21-b7aa-9b64604489a8",
"id": "A01.01",
"link": "https://learn.microsoft.com/security/benchmark/azure/baselines/storage-security-baseline",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": " Visión general",
"text": "Tenga en cuenta la \"Línea base de seguridad de Azure para el almacenamiento\"",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "De forma predeterminada, Azure Storage tiene una dirección IP pública y es accesible desde Internet. Los puntos de conexión privados permiten exponer de forma segura Azure Storage solo a los recursos de Azure Compute que necesitan acceso, lo que elimina la exposición a la Internet pública",
"guid": "f42d78e7-9d17-4a73-a22a-5a67e7a8ed4b",
"id": "A02.01",
"link": "https://learn.microsoft.com/azure/storage/common/storage-private-endpoints",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de redes",
"text": "Considere la posibilidad de usar puntos de conexión privados para Azure Storage",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Las cuentas de almacenamiento recién creadas se crean mediante el modelo de implementación de ARM, de modo que RBAC, etcétera de auditoría, estén habilitados. Asegúrese de que no haya cuentas de almacenamiento antiguas con el modelo de implementación clásico en una suscripción",
"guid": "30e37c3e-2971-41b2-963c-eee079b598de",
"id": "A03.01",
"link": "https://learn.microsoft.com/azure/virtual-machines/migration-classic-resource-manager-overview#migration-of-storage-accounts",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Gobernanza",
"text": "Asegúrese de que las cuentas de almacenamiento más antiguas no usen el \"modelo de implementación clásica\"",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Aproveche Microsoft Defender para obtener información sobre actividades sospechosas y configuraciones incorrectas.",
"guid": "fc5972cd-4cd2-41b0-a803-7f5e6b4bfd3d",
"id": "A03.02",
"link": "https://learn.microsoft.com/azure/storage/common/azure-defender-storage-configure",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gobernanza",
"text": "Habilitación de Microsoft Defender para todas las cuentas de almacenamiento",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "El mecanismo de eliminación temporal permite recuperar blobs eliminados accidentalmente.",
"guid": "503547c1-447e-4c66-828a-7100f1ce16dd",
"id": "A04.01",
"link": "https://learn.microsoft.com/azure/storage/blobs/soft-delete-blob-overview",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Disponibilidad de datos",
"text": "Habilitación de la \"eliminación temporal\" para blobs",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Considere la posibilidad de deshabilitar selectivamente la \"eliminación temporal\" para determinados contenedores de blobs, por ejemplo, si la aplicación debe asegurarse de que la información eliminada se elimine inmediatamente, por ejemplo, por motivos de confidencialidad, privacidad o cumplimiento. ",
"guid": "3f1d5e87-2e52-4e36-81cc-58b4a4b1510e",
"id": "A05.01",
"link": "https://learn.microsoft.com/azure/storage/blobs/soft-delete-blob-enable",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Confidencialidad",
"text": "Deshabilitación de la \"eliminación temporal\" para blobs",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "La eliminación temporal de contenedores permite recuperar un contenedor después de que se haya eliminado, por ejemplo, recuperarse de una operación de eliminación accidental.",
"guid": "43a58a9c-2289-4c3d-9b57-d0c655462f2a",
"id": "A06.01",
"link": "https://learn.microsoft.com/azure/storage/blobs/soft-delete-container-overview",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Disponibilidad de datos",
"text": "Habilitación de la \"eliminación temporal\" para contenedores",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Considere la posibilidad de deshabilitar selectivamente la \"eliminación temporal\" para determinados contenedores de blobs, por ejemplo, si la aplicación debe asegurarse de que la información eliminada se elimine inmediatamente, por ejemplo, por motivos de confidencialidad, privacidad o cumplimiento. ",
"guid": "3e3453a3-c863-4964-ab65-2d6c15f51296",
"id": "A07.01",
"link": "https://learn.microsoft.com/azure/storage/blobs/soft-delete-container-enable",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Confidencialidad",
"text": "Deshabilitar la \"eliminación temporal\" para contenedores",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Evita la eliminación accidental de una cuenta de almacenamiento, obligando al usuario a quitar primero el bloqueo de eliminación, antes de la eliminación",
"guid": "5398e6de-d227-4dd1-92b0-6c21d7999a64",
"id": "A08.01",
"link": "https://learn.microsoft.com/azure/storage/common/lock-account-resource",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Disponibilidad de datos",
"text": "Habilitación de bloqueos de recursos en cuentas de almacenamiento",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Considere la posibilidad de aplicar directivas de \"retención legal\" o \"retención basada en tiempo\" para los blobs, de modo que sea imposible eliminar el blob, el contenedor o la cuenta de almacenamiento. Tenga en cuenta que 'imposible' en realidad significa 'imposible'; una vez que una cuenta de almacenamiento contiene un blob inmutable, la única manera de \"deshacerse\" de esa cuenta de almacenamiento es cancelando la suscripción de Azure.",
"guid": "6f4389a8-f42c-478e-98c0-6a73a22a4956",
"id": "A09.01",
"link": "https://learn.microsoft.com/azure/storage/blobs/immutable-storage-overview",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Disponibilidad de datos, cumplimiento",
"text": "Considere la posibilidad de blobs inmutables",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Considere la posibilidad de deshabilitar el acceso HTTP/80 no protegido a la cuenta de almacenamiento, de modo que todas las transferencias de datos estén cifradas, protegidas contra la integridad y el servidor esté autenticado. ",
"guid": "e7a8dc4a-20e2-47c3-b297-11b1352beee0",
"id": "A10.01",
"link": "https://learn.microsoft.com/azure/storage/common/storage-require-secure-transfer",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de redes",
"text": "Requerir HTTPS, es decir, deshabilitar el puerto 80 en la cuenta de almacenamiento",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Al configurar un dominio personalizado (nombre de host) en una cuenta de almacenamiento, compruebe si necesita TLS/HTTPS; si es así, es posible que tenga que colocar Azure CDN delante de la cuenta de almacenamiento.",
"guid": "79b588de-fc49-472c-b3cd-21bf77036e5e",
"id": "A10.02",
"link": "https://learn.microsoft.com/azure/storage/blobs/storage-custom-domain-name",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de redes",
"text": "Al aplicar HTTPS (deshabilitar HTTP), compruebe que no usa dominios personalizados (CNAME) para la cuenta de almacenamiento.",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Requerir HTTPS cuando un cliente usa un token de SAS para acceder a los datos de blob ayuda a minimizar el riesgo de pérdida de credenciales.",
"guid": "6b4bed3d-5035-447c-8347-dc56028a71ff",
"id": "A10.03",
"link": "https://learn.microsoft.com/azure/storage/common/storage-sas-overview",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Gestión de redes",
"text": "Limitar los tokens de firma de acceso compartido (SAS) solo a las conexiones HTTPS",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": ". Al aplicar la versión más reciente de TLS, se rechazarán las solicitudes de los clientes que utilicen la versión anterior. ",
"graph": "resources | where type == 'microsoft.storage/storageaccounts' | extend compliant = (isnull(properties.minimumTlsVersion) == false and properties.minimumTlsVersion in ('TLS1_2', 'TLS1_3')) | distinct id, compliant",
"guid": "e12be569-a18f-4562-8d5d-ce151b9e7d55",
"id": "A10.4",
"link": "https://learn.microsoft.com/azure/storage/common/transport-layer-security-configure-minimum-version",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de redes",
"text": "Aplicación de la versión más reciente de TLS para una cuenta de almacenamiento",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Los tokens de identificador de Microsoft Entra deben favorecerse sobre las firmas de acceso compartido, siempre que sea posible",
"guid": "e1ce15dd-3f0d-45e7-92d4-1e3611cc57b4",
"id": "A11.01",
"link": "https://learn.microsoft.com/azure/storage/common/authorize-data-access",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de identidades y accesos",
"text": "Uso de tokens de identificador de Microsoft Entra para el acceso a blobs",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Al asignar un rol a un usuario, grupo o aplicación, conceda a esa entidad de seguridad solo los permisos necesarios para que pueda realizar sus tareas. Limitar el acceso a los recursos ayuda a evitar el uso indebido no intencionado y malintencionado de los datos.",
"guid": "a4b1410d-4395-48a8-a228-9b3d6b57cfc6",
"id": "A11.02",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Gestión de identidades y accesos",
"text": "Privilegio mínimo en los permisos de IaM",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Una SAS de delegación de usuarios está protegida con credenciales de Azure Active Directory (Azure AD) y también con los permisos especificados para la SAS. Una SAS de delegación de usuarios es análoga a una SAS de servicio en cuanto a su ámbito y función, pero ofrece ventajas de seguridad con respecto a la SAS de servicio. ",
"guid": "55461e1a-3e34-453a-9c86-39648b652d6c",
"id": "A11.03",
"link": "https://learn.microsoft.com/azure/storage/common/storage-sas-overview?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json#best-practices-when-using-sas",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de identidades y accesos",
"text": "Al usar SAS, prefiera \"SAS de delegación de usuarios\" en lugar de SAS basada en clave de cuenta de almacenamiento.",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Las claves de la cuenta de almacenamiento ('claves compartidas') tienen muy pocas capacidades de auditoría. Si bien se puede monitorear quién o cuándo obtuvo una copia de las claves, una vez que las claves están en manos de varias personas, es imposible atribuir el uso a un usuario específico. Confiar únicamente en la autenticación de ID de Entra facilita la vinculación del acceso al almacenamiento de un usuario. ",
"graph": "resources | where type == 'microsoft.storage/storageaccounts' | extend allowSharedKeyAccess = tostring(properties.allowSharedKeyAccess) | extend compliant = (isnotempty(allowSharedKeyAccess) and allowSharedKeyAccess == 'false') | distinct id, compliant",
"guid": "15f51296-5398-4e6d-bd22-7dd142b06c21",
"id": "A11.04",
"link": "https://learn.microsoft.com/rest/api/storageservices/authorize-with-shared-key",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de identidades y accesos",
"text": "Considere la posibilidad de deshabilitar las claves de la cuenta de almacenamiento, de modo que solo se admita el acceso a Microsoft Entra ID (y SAS de delegación de usuarios).",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Utilice los datos del registro de actividad para identificar \"cuándo\", \"quién\", \"qué\" y \"cómo\" se está viendo o cambiando la seguridad de la cuenta de almacenamiento (es decir, claves de cuenta de almacenamiento, directivas de acceso, etcétera).",
"guid": "d7999a64-6f43-489a-af42-c78e78c06a73",
"id": "A12.01",
"link": "https://learn.microsoft.com/azure/storage/blobs/blob-storage-monitoring-scenarios#audit-account-activity",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Monitorización",
"text": "Considere la posibilidad de usar Azure Monitor para auditar las operaciones del plano de control en la cuenta de almacenamiento",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Una política de caducidad de claves le permite establecer un recordatorio para la rotación de las claves de acceso de la cuenta. El recordatorio se muestra si ha transcurrido el intervalo especificado y las teclas aún no se han girado.",
"guid": "a22a4956-e7a8-4dc4-a20e-27c3e29711b1",
"id": "A13.01",
"link": "https://learn.microsoft.com/azure/storage/common/storage-account-keys-manage?tabs=azure-portal#create-a-key-expiration-policy",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Gestión de identidades y accesos",
"text": "Al usar claves de cuenta de almacenamiento, considere la posibilidad de habilitar una \"directiva de expiración de claves\"",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Una directiva de expiración de SAS especifica un intervalo recomendado durante el cual la SAS es válida. Las directivas de caducidad de SAS se aplican a una SAS de servicio o a una SAS de cuenta. Cuando un usuario genera una SAS de servicio o una SAS de cuenta con un intervalo de validez mayor que el intervalo recomendado, verá una advertencia.",
"guid": "352beee0-79b5-488d-bfc4-972cd3cd21bf",
"id": "A13.02",
"link": "https://learn.microsoft.com/azure/storage/common/sas-expiration-policy",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Gestión de identidades y accesos",
"text": "Considere la posibilidad de configurar una directiva de expiración de SAS",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Las directivas de acceso almacenadas ofrecen la opción de revocar los permisos de una SAS de servicio sin tener que volver a generar las claves de la cuenta de almacenamiento. ",
"guid": "77036e5e-6b4b-4ed3-b503-547c1347dc56",
"id": "A13.03",
"link": "https://learn.microsoft.com/rest/api/storageservices/define-stored-access-policy",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Gestión de identidades y accesos",
"text": "Considere la posibilidad de vincular SAS a una directiva de acceso almacenada",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"guid": "028a71ff-e1ce-415d-b3f0-d5e772d41e36",
"id": "A14.01",
"link": "https://microsoft.github.io/code-with-engineering-playbook/continuous-integration/dev-sec-ops/secret-management/recipes/detect-secrets-ado/",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "CI/CD",
"text": "Considere la posibilidad de configurar el repositorio de código fuente de la aplicación para detectar cadenas de conexión protegidas y claves de cuenta de almacenamiento.",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Lo ideal es que la aplicación use una identidad administrada para autenticarse en Azure Storage. Si eso no es posible, considere la posibilidad de tener la credencial de almacenamiento (cadena de conexión, clave de cuenta de almacenamiento, SAS, credencial de entidad de servicio) en Azure KeyVault o un servicio equivalente.",
"guid": "11cc57b4-a4b1-4410-b439-58a8c2289b3d",
"id": "A15.01",
"link": "https://learn.microsoft.com/azure/architecture/framework/security/design-storage-keys",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de identidades y accesos",
"text": "Considere la posibilidad de almacenar cadenas de conexión en Azure KeyVault (en escenarios en los que las identidades administradas no son posibles)",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Utilice los tiempos de caducidad a corto plazo en una SAS de servicio SAS ad hoc o en una SAS de cuenta. De esta manera, incluso si una SAS se ve comprometida, solo es válida durante un corto período de tiempo. Esta práctica es especialmente importante si no puede hacer referencia a una política de acceso almacenada. Los tiempos de expiración a corto plazo también limitan la cantidad de datos que se pueden escribir en un blob al limitar el tiempo disponible para cargarlos en él.",
"guid": "27138b82-1102-4cac-9eae-01e6e842e52f",
"id": "A15.02",
"link": "https://learn.microsoft.com/rest/api/storageservices/delegate-access-with-shared-access-signature",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de identidades y accesos",
"text": "Esfuércese por períodos de validez cortos para SAS ad-hoc",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Al crear una SAS, sea lo más específico y restrictivo posible. Prefiera una SAS para un solo recurso y operación en lugar de una SAS que proporciona un acceso mucho más amplio.",
"guid": "4721d928-c1b1-4cd5-81e5-4a29a9de399c",
"id": "A15.03",
"link": "https://learn.microsoft.com/rest/api/storageservices/delegate-access-with-shared-access-signature",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Gestión de identidades y accesos",
"text": "Aplicación de un ámbito limitado a una SAS",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Una SAS puede incluir parámetros sobre las direcciones IP de cliente o los intervalos de direcciones que están autorizados a solicitar un recurso mediante la SAS. ",
"guid": "fd7b28dc-9355-4562-82bf-e4564b0d834a",
"id": "A15.04",
"link": "https://learn.microsoft.com/rest/api/storageservices/create-account-sas",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Gestión de identidades y accesos",
"text": "Considere la posibilidad de definir el ámbito de SAS a una dirección IP de cliente específica, siempre que sea posible",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Una SAS no puede restringir la cantidad de datos que carga un cliente; Dado el modelo de precios de la cantidad de almacenamiento a lo largo del tiempo, podría tener sentido validar si los clientes cargaron contenidos malintencionados de gran tamaño.",
"guid": "348b263e-6dd6-4051-8a36-498f6dbad38e",
"id": "A15.05",
"service": "Azure Storage",
"severity": "Bajo",
"subcategory": "Gestión de identidades y accesos",
"text": "Considere la posibilidad de comprobar los datos cargados, después de que los clientes hayan utilizado una SAS para cargar un archivo. ",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Al acceder al almacenamiento de blobs a través de SFTP mediante una \"cuenta de usuario local\", no se aplican los controles RBAC \"habituales\". El acceso a blobs a través de NFS o REST puede ser más restrictivo que el acceso SFTP. Desafortunadamente, a partir de principios de 2023, los usuarios locales son la única forma de administración de identidades que actualmente es compatible con el punto de conexión SFTP",
"guid": "ad53cc7c-e1d7-4aaa-a357-1449ab8053d8",
"id": "A15.06",
"link": "https://learn.microsoft.com/azure/storage/blobs/secure-file-transfer-protocol-support#sftp-permission-model",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de identidades y accesos",
"text": "SFTP: Limite la cantidad de \"usuarios locales\" para el acceso SFTP y audite si el acceso es necesario a lo largo del tiempo.",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"guid": "9f89dc7b-33be-42a1-a27f-7b9e91be1f38",
"id": "A15.07",
"link": "https://learn.microsoft.com/azure/storage/blobs/secure-file-transfer-protocol-known-issues#authentication-and-authorization",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Gestión de identidades y accesos",
"text": "SFTP: El punto de conexión SFTP no admite ACL similares a POSIX.",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "El almacenamiento es compatible con CORS (Cross-Origin Resource Sharing), es decir, una función HTTP que permite a las aplicaciones web de un dominio diferente aflojar la política del mismo origen. Al habilitar CORS, mantenga CorsRules con el mínimo privilegio.",
"guid": "cef39812-bd46-43cb-aac8-ac199ebb91a3",
"id": "A16.01",
"link": "https://learn.microsoft.com/rest/api/storageservices/cross-origin-resource-sharing--cors--support-for-the-azure-storage-services",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de redes",
"text": "Evite las políticas de CORS demasiado amplias",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Los datos en reposo siempre se cifran en el lado del servidor y, además, también pueden estar cifrados en el lado del cliente. El cifrado del lado del servidor puede producirse mediante una clave administrada por la plataforma (valor predeterminado) o una clave administrada por el cliente. El cifrado del lado cliente puede producirse haciendo que el cliente proporcione una clave de cifrado y descifrado por blob al almacenamiento de Azure o controlando completamente el cifrado en el lado cliente. por lo tanto, no depende en absoluto de Azure Storage para obtener garantías de confidencialidad.",
"guid": "3d90cae2-cc88-4137-86f7-c0cbafe61464",
"id": "A17.01",
"link": "https://learn.microsoft.com/azure/storage/common/storage-service-encryption",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Confidencialidad y encriptación",
"text": "Determine cómo se deben cifrar los datos en reposo. Comprender el modelo de subprocesos para los datos.",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"guid": "8dd457e9-2713-48b8-8110-2cac6eae01e6",
"id": "A17.02",
"link": "https://learn.microsoft.com/azure/storage/common/customer-managed-keys-overview?toc=%2Fazure%2Fstorage%2Fblobs%2Ftoc.json&bc=%2Fazure%2Fstorage%2Fblobs%2Fbreadcrumb%2Ftoc.json",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Confidencialidad y encriptación",
"text": "Determine cuál o si se debe utilizar el cifrado de la plataforma.",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"guid": "e842e52f-4721-4d92-ac1b-1cd521e54a29",
"id": "A17.03",
"link": "https://learn.microsoft.com/azure/storage/blobs/encryption-customer-provided-keys",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Confidencialidad y encriptación",
"text": "Determine qué cifrado del lado del cliente se debe usar, si se debe usar.",
"waf": "Seguridad"
},
{
"category": "Seguridad",
"description": "Aproveche el Explorador de Resource Graph (resources | where type == 'microsoft.storage/storageaccounts' | where properties['allowBlobPublicAccess'] == true) para buscar cuentas de almacenamiento que permitan el acceso anónimo a blobs.",
"graph": "resources | where type == 'microsoft.storage/storageaccounts' | extend compliant = (properties.allowBlobPublicAccess == 'false') | distinct id, compliant",
"guid": "659ae558-b937-4d49-a5e1-112dbd7ba012",
"id": "A18.01",
"link": "https://learn.microsoft.com/azure/storage/blobs/anonymous-read-access-configure?tabs=portal#allow-or-disallow-public-read-access-for-a-storage-account",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Gestión de identidades y accesos",
"text": "Considere si es necesario el acceso anónimo de blob público o si se puede deshabilitar para determinadas cuentas de almacenamiento. ",
"waf": "Seguridad"
},
{
"category": "Gestión de Operaciones",
"guid": "cb8eb8c0-aa62-4a25-a495-6eaa8dc4a243",
"id": "B01.01",
"link": "https://learn.microsoft.com/azure/storage/common/storage-account-upgrade?tabs=azure-portal",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Versión de la plataforma",
"text": "Aproveche un tipo de cuenta storagev2 para mejorar el rendimiento y la confiabilidad",
"waf": "Fiabilidad"
},
{
"category": "BC y RD",
"guid": "e05bbe20-9d49-4fda-9777-8424d116785c",
"id": "C01.01",
"link": "https://learn.microsoft.com/azure/storage/common/storage-redundancy",
"service": "Azure Storage",
"severity": "Alto",
"subcategory": "Disponibilidad",
"text": "Aproveche el almacenamiento GRS, ZRS o GZRS para obtener la máxima disponibilidad",
"waf": "Fiabilidad"
},
{
"category": "BC y RD",
"guid": "2fa56c56-ad48-4408-be72-734c486ba280",
"id": "C01.02",
"link": "https://learn.microsoft.com/azure/storage/common/storage-disaster-recovery-guidance",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Conmutación por error",
"text": "Para la operación de escritura después de la conmutación por error, use la conmutación por error administrada por el cliente ",
"waf": "Fiabilidad"
},
{
"category": "Gestión de Operaciones",
"guid": "dc0590cf-65de-48e1-909c-cbd579266bcc",
"id": "C01.03",
"link": "https://learn.microsoft.com/azure/storage/common/storage-disaster-recovery-guidance#microsoft-managed-failover",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Conmutación por error",
"text": "Descripción de los detalles de la conmutación por error administrada por Microsoft",
"waf": "Fiabilidad"
},
{
"category": "Gestión de Operaciones",
"guid": "a274faa1-abfe-49d5-9d04-c3c4919cb1b3",
"id": "C01.04",
"link": "https://learn.microsoft.com/azure/storage/blobs/soft-delete-blob-enable?tabs=azure-portal",
"service": "Azure Storage",
"severity": "Medio",
"subcategory": "Protección de datos",
"text": "Habilitar eliminación temporal",
"waf": "Fiabilidad"
}
],
"metadata": {
"name": "Azure Storage Review Checklist",
"state": "Preview",
"timestamp": "August 12, 2024",
"waf": "all"
},
"severities": [
{
"name": "Alto"
},
{
"name": "Medio"
},
{
"name": "Bajo"
}
],
"status": [
{
"description": "Este control aún no se ha examinado",
"name": "No verificado"
},
{
"description": "Hay un elemento de acción asociado a esta comprobación",
"name": "Abrir"
},
{
"description": "Esta comprobación se ha verificado y no hay más elementos de acción asociados a ella",
"name": "Cumplido"
},
{
"description": "Recomendación entendida, pero no necesaria por los requisitos actuales",
"name": "No es necesario"
},
{
"description": "No aplicable para el diseño actual",
"name": "N/A"
}
],
"waf": [
{
"name": "Fiabilidad"
},
{
"name": "Seguridad"
},
{
"name": "Costar"
},
{
"name": "Operaciones"
},
{
"name": "Rendimiento"
}
],
"yesno": [
{
"name": "Sí"
},
{
"name": "No"
}
]
}