-
Notifications
You must be signed in to change notification settings - Fork 327
/
Copy pathazure_storage_checklist.pt.json
566 lines (566 loc) · 31.6 KB
/
azure_storage_checklist.pt.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": "Gerenciamento de identidade e acesso"
},
{
"name": "Topologia e conectividade de rede"
},
{
"name": "BC e DR"
},
{
"name": "Governança e segurança"
},
{
"name": "Governança de custos"
},
{
"name": "Gestão de Operações"
},
{
"name": "Implantação de aplicativos"
},
{
"name": "Segurança"
}
],
"items": [
{
"category": "Segurança",
"description": "Aplicar as diretrizes do parâmetro de comparação de segurança de nuvem da Microsoft relacionado ao armazenamento",
"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": "Média",
"subcategory": " Visão geral",
"text": "Considere a 'linha de base de segurança do Azure para armazenamento'",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Por padrão, o Armazenamento do Azure tem um endereço IP público e pode ser acessado pela Internet. Os pontos de extremidade privados permitem expor com segurança o Armazenamento do Azure apenas aos recursos de Computação do Azure que precisam de acesso, eliminando assim a exposição à 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": "Rede",
"text": "Considere usar pontos de extremidade privados para o Armazenamento do Azure",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "As contas de armazenamento recém-criadas são criadas usando o modelo de implantação do ARM, para que o RBAC, a auditoria etc. estejam habilitados. Verifique se não há contas de armazenamento antigas com o modelo de implantação clássico em uma assinatura",
"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": "Média",
"subcategory": "Governança",
"text": "Verifique se as contas de armazenamento mais antigas não estão usando o \"modelo de implantação clássico\"",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Aproveite o Microsoft Defender para saber mais sobre atividades suspeitas e configurações incorretas.",
"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": "Governança",
"text": "Habilitar o Microsoft Defender para todas as suas contas de armazenamento",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "O mecanismo de exclusão reversível permite recuperar blobs excluídos acidentalmente.",
"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": "Média",
"subcategory": "Disponibilidade de dados",
"text": "Habilitar 'exclusão reversível' para blobs",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Considere desabilitar seletivamente a \"exclusão reversível\" para determinados contêineres de blob, por exemplo, se o aplicativo precisar garantir que as informações excluídas sejam excluídas imediatamente, por exemplo, por motivos de confidencialidade, privacidade ou conformidade. ",
"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": "Média",
"subcategory": "Confidencialidade",
"text": "Desabilitar a 'exclusão reversível' para blobs",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "A exclusão reversível para contêineres permite que você recupere um contêiner depois que ele foi excluído, por exemplo, recuperar de uma operação de exclusão acidental.",
"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": "Disponibilidade de dados",
"text": "Habilitar 'exclusão reversível' para contêineres",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Considere desabilitar seletivamente a \"exclusão reversível\" para determinados contêineres de blob, por exemplo, se o aplicativo precisar garantir que as informações excluídas sejam excluídas imediatamente, por exemplo, por motivos de confidencialidade, privacidade ou conformidade. ",
"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": "Média",
"subcategory": "Confidencialidade",
"text": "Desabilitar a 'exclusão reversível' para contêineres",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Impede a exclusão acidental de uma conta de armazenamento, forçando o usuário a remover primeiro o bloqueio de exclusão, antes da exclusão",
"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": "Disponibilidade de dados",
"text": "Habilitar bloqueios de recursos em contas de armazenamento",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Considere as políticas de 'retenção legal' ou 'retenção baseada em tempo' para blobs, de modo que seja impossível excluir o blob, o contêiner ou a conta de armazenamento. Observe que 'impossível' na verdade significa 'impossível'; depois que uma conta de armazenamento contém um blob imutável, a única maneira de \"se livrar\" dessa conta de armazenamento é cancelando a assinatura do 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": "Disponibilidade de dados, conformidade",
"text": "Considere blobs imutáveis",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Considere desabilitar o acesso HTTP/80 desprotegido à conta de armazenamento, para que todas as transferências de dados sejam criptografadas, protegidas por integridade e o servidor seja 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": "Rede",
"text": "Exigir HTTPS, ou seja, desabilitar a porta 80 na conta de armazenamento",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Ao configurar um domínio personalizado (nome do host) em uma conta de armazenamento, verifique se você precisa de TLS/HTTPS; nesse caso, talvez seja necessário colocar a CDN do Azure na frente de sua conta de armazenamento.",
"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": "Rede",
"text": "Ao impor HTTPS (desabilitando o HTTP), verifique se você não usa domínios personalizados (CNAME) para a conta de armazenamento.",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Exigir HTTPS quando um cliente usa um token SAS para acessar dados de blob ajuda a minimizar o risco de perda de credenciais.",
"guid": "6b4bed3d-5035-447c-8347-dc56028a71ff",
"id": "A10.03",
"link": "https://learn.microsoft.com/azure/storage/common/storage-sas-overview",
"service": "Azure Storage",
"severity": "Média",
"subcategory": "Rede",
"text": "Limitar tokens de assinatura de acesso compartilhado (SAS) apenas a conexões HTTPS",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": ". A imposição da versão mais recente do TLS rejeitará a solicitação de clientes que usam a versão mais antiga. ",
"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": "Rede",
"text": "Impor a versão mais recente do TLS para uma conta de armazenamento",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Os tokens de ID do Microsoft Entra devem ser favorecidos em relação às assinaturas de acesso compartilhado, sempre que possível",
"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": "Gerenciamento de identidade e acesso",
"text": "Usar tokens de ID do Microsoft Entra para acesso a blobs",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Ao atribuir uma função a um usuário, grupo ou aplicativo, conceda a essa entidade de segurança apenas as permissões necessárias para que ela execute suas tarefas. Limitar o acesso aos recursos ajuda a evitar o uso indevido não intencional e mal-intencionado de seus dados.",
"guid": "a4b1410d-4395-48a8-a228-9b3d6b57cfc6",
"id": "A11.02",
"service": "Azure Storage",
"severity": "Média",
"subcategory": "Gerenciamento de identidade e acesso",
"text": "Privilégios mínimos em permissões de IaM",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Uma SAS de delegação de usuário é protegida com credenciais do Azure Active Directory (Azure AD) e também pelas permissões especificadas para a SAS. Uma SAS de delegação de usuário é análoga a uma SAS de serviço em termos de escopo e função, mas oferece benefícios de segurança em relação à SAS de serviço. ",
"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": "Gerenciamento de identidade e acesso",
"text": "Ao usar SAS, prefira 'SAS de delegação de usuário' em vez de SAS baseada em chave de conta de armazenamento.",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "As chaves da conta de armazenamento (\"chaves compartilhadas\") têm muito poucos recursos de auditoria. Embora possa ser monitorado em quem/quando buscou uma cópia das chaves, uma vez que as chaves estão nas mãos de várias pessoas, é impossível atribuir o uso a um usuário específico. Confiar apenas na autenticação do Entra ID facilita o acesso ao armazenamento a um usuário. ",
"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": "Gerenciamento de identidade e acesso",
"text": "Considere desabilitar as chaves da conta de armazenamento, para que haja suporte apenas para o acesso à ID do Microsoft Entra (e à SAS de delegação de usuário).",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Use os dados do Log de Atividades para identificar \"quando\", \"quem\", \"o quê\" e \"como\" a segurança da sua conta de armazenamento está sendo exibida ou alterada (ou seja, chaves da conta de armazenamento, políticas de acesso etc.).",
"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": "Monitorização",
"text": "Considere usar o Azure Monitor para auditar as operações do painel de controle na conta de armazenamento",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Uma política de expiração de chave permite que você defina um lembrete para a rotação das chaves de acesso da conta. O lembrete é exibido se o intervalo especificado tiver decorrido e as teclas ainda não tiverem sido giradas.",
"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": "Média",
"subcategory": "Gerenciamento de identidade e acesso",
"text": "Ao usar chaves de conta de armazenamento, considere habilitar uma 'política de expiração de chave'",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Uma política de expiração de SAS especifica um intervalo recomendado durante o qual a SAS é válida. As políticas de expiração de SAS se aplicam a uma SAS de serviço ou a uma SAS de conta. Quando um usuário gera SAS de serviço ou uma SAS de conta com um intervalo de validade maior que o intervalo recomendado, ele verá um aviso.",
"guid": "352beee0-79b5-488d-bfc4-972cd3cd21bf",
"id": "A13.02",
"link": "https://learn.microsoft.com/azure/storage/common/sas-expiration-policy",
"service": "Azure Storage",
"severity": "Média",
"subcategory": "Gerenciamento de identidade e acesso",
"text": "Considere configurar uma política de expiração de SAS",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "As políticas de acesso armazenadas oferecem a opção de revogar permissões para uma SAS de serviço sem precisar regenerar as chaves da conta de armazenamento. ",
"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": "Média",
"subcategory": "Gerenciamento de identidade e acesso",
"text": "Considere vincular SAS a uma política de acesso armazenada",
"waf": "Segurança"
},
{
"category": "Segurança",
"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": "Média",
"subcategory": "CI/CD",
"text": "Considere configurar o repositório de código-fonte do aplicativo para detectar cadeias de conexão e chaves de conta de armazenamento com check-in.",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Idealmente, seu aplicativo deve usar uma identidade gerenciada para autenticar no Armazenamento do Azure. Se isso não for possível, considere ter a credencial de armazenamento (cadeia de conexão, chave da conta de armazenamento, SAS, credencial da entidade de serviço) no Azure KeyVault ou em um serviço 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": "Gerenciamento de identidade e acesso",
"text": "Considere armazenar cadeias de conexão no Azure KeyVault (em cenários em que as identidades gerenciadas não são possíveis)",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Use tempos de expiração de curto prazo em uma SAS de serviço SAS ad hoc ou SAS de conta. Dessa forma, mesmo que uma SAS seja comprometida, ela é válida apenas por um curto período de tempo. Essa prática é especialmente importante se você não puder fazer referência a uma política de acesso armazenada. Os tempos de expiração de curto prazo também limitam a quantidade de dados que podem ser gravados em um blob, limitando o tempo disponível para carregar nele.",
"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": "Gerenciamento de identidade e acesso",
"text": "Esforce-se por períodos de validade curtos para SAS ad-hoc",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Ao criar uma SAS, seja o mais específico e restritivo possível. Prefira uma SAS para um único recurso e operação em vez de uma SAS que oferece acesso muito mais amplo.",
"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": "Média",
"subcategory": "Gerenciamento de identidade e acesso",
"text": "Aplicar um escopo restrito a uma SAS",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Uma SAS pode incluir parâmetros nos quais os endereços IP do cliente ou intervalos de endereços estão autorizados a solicitar um recurso usando a 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": "Média",
"subcategory": "Gerenciamento de identidade e acesso",
"text": "Considere definir o escopo da SAS para um endereço IP de cliente específico, sempre que possível",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Uma SAS não pode restringir a quantidade de dados que um cliente carrega; Dado o modelo de preços da quantidade de armazenamento ao longo do tempo, pode fazer sentido validar se os clientes carregaram conteúdos maliciosamente grandes.",
"guid": "348b263e-6dd6-4051-8a36-498f6dbad38e",
"id": "A15.05",
"service": "Azure Storage",
"severity": "Baixo",
"subcategory": "Gerenciamento de identidade e acesso",
"text": "Considere verificar os dados carregados depois que os clientes usaram uma SAS para carregar um arquivo. ",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Ao acessar o armazenamento de blobs por meio do SFTP usando uma \"conta de usuário local\", os controles RBAC \"usuais\" não se aplicam. O acesso a blobs via NFS ou REST pode ser mais restritivo do que o acesso SFTP. Infelizmente, a partir do início de 2023, os usuários locais são a única forma de gerenciamento de identidade com suporte atual para o endpoint 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": "Gerenciamento de identidade e acesso",
"text": "SFTP: limite a quantidade de \"usuários locais\" para acesso SFTP e audite se o acesso é necessário ao longo do tempo.",
"waf": "Segurança"
},
{
"category": "Segurança",
"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": "Média",
"subcategory": "Gerenciamento de identidade e acesso",
"text": "SFTP: o endpoint SFTP não oferece suporte a ACLs semelhantes a POSIX.",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "O armazenamento oferece suporte ao CORS (Cross-Origin Resource Sharing), ou seja, um recurso HTTP que permite que aplicativos Web de um domínio diferente afrouxem a política de mesma origem. Ao habilitar o CORS, mantenha as CorsRules com o menor privilégio.",
"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": "Rede",
"text": "Evite políticas de CORS excessivamente amplas",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Os dados em repouso são sempre criptografados no lado do servidor e, além disso, também podem ser criptografados no lado do cliente. A criptografia do lado do servidor pode ocorrer usando uma chave gerenciada pela plataforma (padrão) ou uma chave gerenciada pelo cliente. A criptografia do lado do cliente pode acontecer fazendo com que o cliente forneça uma chave de criptografia/descriptografia por blob para o armazenamento do Azure ou manipulando completamente a criptografia no lado do cliente. portanto, não dependendo do Armazenamento do Azure para garantias de confidencialidade.",
"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": "Confidencialidade e Criptografia",
"text": "Determine como os dados em repouso devem ser criptografados. Entenda o modelo de thread para dados.",
"waf": "Segurança"
},
{
"category": "Segurança",
"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": "Média",
"subcategory": "Confidencialidade e Criptografia",
"text": "Determine qual/se a criptografia de plataforma deve ser usada.",
"waf": "Segurança"
},
{
"category": "Segurança",
"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": "Média",
"subcategory": "Confidencialidade e Criptografia",
"text": "Determine qual/se a criptografia do lado do cliente deve ser usada.",
"waf": "Segurança"
},
{
"category": "Segurança",
"description": "Aproveite o Resource Graph Explorer (resources | where type == 'microsoft.storage/storageaccounts' | where properties['allowBlobPublicAccess'] == true) para localizar contas de armazenamento que permitem acesso 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": "Gerenciamento de identidade e acesso",
"text": "Considere se o acesso anônimo de blob público é necessário ou se ele pode ser desabilitado para determinadas contas de armazenamento. ",
"waf": "Segurança"
},
{
"category": "Gestão de Operações",
"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": "Versão da plataforma",
"text": "Aproveite um tipo de conta storagev2 para melhor desempenho e confiabilidade",
"waf": "Fiabilidade"
},
{
"category": "BC e DR",
"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": "Disponibilidade",
"text": "Aproveite o armazenamento GRS, ZRS ou GZRS para obter a mais alta disponibilidade",
"waf": "Fiabilidade"
},
{
"category": "BC e DR",
"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": "Média",
"subcategory": "Failover",
"text": "Para operação de gravação após o failover, use o failover gerenciado pelo cliente ",
"waf": "Fiabilidade"
},
{
"category": "Gestão de Operações",
"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": "Média",
"subcategory": "Failover",
"text": "Entender os detalhes do failover gerenciado pela Microsoft",
"waf": "Fiabilidade"
},
{
"category": "Gestão de Operações",
"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": "Média",
"subcategory": "Proteção de dados",
"text": "Habilitar exclusão reversível",
"waf": "Fiabilidade"
}
],
"metadata": {
"name": "Azure Storage Review Checklist",
"state": "Preview",
"timestamp": "August 12, 2024",
"waf": "all"
},
"severities": [
{
"name": "Alto"
},
{
"name": "Média"
},
{
"name": "Baixo"
}
],
"status": [
{
"description": "Esta verificação ainda não foi analisada",
"name": "Não verificado"
},
{
"description": "Há um item de ação associado a essa verificação",
"name": "Abrir"
},
{
"description": "Essa verificação foi verificada e não há mais itens de ação associados a ela",
"name": "Cumprido"
},
{
"description": "Recomendação compreendida, mas não necessária pelos requisitos atuais",
"name": "Não é necessário"
},
{
"description": "Não aplicável para o projeto atual",
"name": "N/A"
}
],
"waf": [
{
"name": "Fiabilidade"
},
{
"name": "Segurança"
},
{
"name": "Custar"
},
{
"name": "Operações"
},
{
"name": "Desempenho"
}
],
"yesno": [
{
"name": "Sim"
},
{
"name": "Não"
}
]
}