-
Notifications
You must be signed in to change notification settings - Fork 324
/
alz_checklist.ko.json
2980 lines (2980 loc) · 186 KB
/
alz_checklist.ko.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
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"categories": [
{
"name": "Azure 청구 및 Microsoft Entra ID 테넌트"
},
{
"name": "ID 및 액세스 관리"
},
{
"name": "네트워크 토폴로지 및 연결"
},
{
"name": "안전"
},
{
"name": "경영"
},
{
"name": "리소스 구성"
},
{
"name": "플랫폼 자동화 및 DevOps"
},
{
"name": "지배구조"
}
],
"items": [
{
"category": "네트워크 토폴로지 및 연결",
"guid": "7bc1c396-2461-4698-b57f-30ca69525252",
"id": "",
"link": "https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/considerations/regions",
"service": "VNet",
"severity": "보통",
"subcategory": "허브 앤 스포크",
"text": "다중 지역 애플리케이션 랜딩 존 및 재해 복구 시나리오를 신속하게 지원할 수 있도록 여러 지역에 Azure 랜딩 존 연결 리소스를 배포합니다.",
"training": "https://learn.microsoft.com/training/modules/hub-and-spoke-network-architecture/",
"waf": "신뢰도"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "70c15989-c726-42c7-b0d3-24b7375b9201",
"id": "A01.01",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/multi-tenant/considerations-recommendations",
"service": "Entra",
"severity": "보통",
"subcategory": "Microsoft Entra ID 테넌트",
"text": "다중 테넌트에 대한 명확한 규정 또는 비즈니스 요구 사항이 없는 한 Azure 리소스를 관리하기 위해 하나의 Entra 테넌트를 사용합니다.",
"training": "https://learn.microsoft.com/training/modules/deploy-resources-scopes-bicep/2-understand-deployment-scopes",
"waf": "작업"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "6309957b-821a-43d1-b9d9-7fcf1802b747",
"id": "A01.02",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/multi-tenant/automation",
"service": "Entra",
"severity": "낮다",
"subcategory": "Microsoft Entra ID 테넌트",
"text": "다중 테넌트 자동화 접근 방식을 사용하여 Microsoft Entra ID 테넌트를 관리합니다.",
"training": "https://learn.microsoft.com/entra/architecture/multi-tenant-user-management-introduction/",
"waf": "작업"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "78e11934-499a-45ed-8ef7-aae5578f0ecf",
"id": "A01.03",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/multi-tenant/lighthouse",
"service": "Entra",
"severity": "높다",
"subcategory": "Microsoft Entra ID 테넌트",
"text": "동일한 ID로 다중 테넌트 관리에 Azure Lighthouse를 사용합니다.",
"training": "https://learn.microsoft.com/azure/lighthouse/concepts/cross-tenant-management-experience",
"waf": "작업"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "5d82e6df-6f61-42f2-82e2-3132d293be3d",
"id": "A02.01",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/azure-billing-microsoft-customer-agreement#design-recommendations",
"service": "Entra",
"severity": "높다",
"subcategory": "클라우드 솔루션 공급자",
"text": "파트너에게 테넌트를 관리할 수 있는 액세스 권한을 부여하는 경우 Azure Lighthouse를 사용합니다.",
"training": "https://learn.microsoft.com/azure/lighthouse/how-to/onboard-customer",
"waf": "비용"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "a24d0de3-d4b9-4dfb-8ddd-bbfaf123fa01",
"id": "A02.02",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/azure-billing-cloud-solution-provider#design-recommendations",
"severity": "낮다",
"subcategory": "클라우드 솔루션 공급자",
"text": "CSP 파트너가 있는 경우 지원 요청 및 에스컬레이션 프로세스를 정의하고 문서화합니다.",
"waf": "비용"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "32952499-58c8-4e6f-ada5-972e67893d55",
"id": "A02.03",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/azure-billing-microsoft-customer-agreement#design-recommendations",
"severity": "보통",
"subcategory": "클라우드 솔루션 공급자",
"text": "Azure Cost Management를 사용하여 Cost Reporting 및 뷰를 설정합니다.",
"training": "https://learn.microsoft.com/training/modules/analyze-costs-create-budgets-azure-cost-management/",
"waf": "비용"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "685cb4f2-ac9c-4b19-9167-993ed0b32415",
"id": "A03.01",
"link": "https://learn.microsoft.com/azure/cost-management-billing/manage/direct-ea-administration#manage-notification-contacts",
"severity": "보통",
"subcategory": "기업 계약",
"text": "그룹 사서함에 대한 알림 연락처를 구성합니다.",
"waf": "비용"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "12cd499f-96e2-4e41-a243-231fb3245a1c",
"id": "A03.02",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/azure-billing-enterprise-agreement#design-considerations",
"severity": "낮다",
"subcategory": "기업 계약",
"text": "부서와 계정을 사용하여 조직의 구조를 등록 계층에 매핑하면 청구를 분리하는 데 도움이 될 수 있습니다.",
"training": "https://learn.microsoft.com/azure/cost-management-billing/manage/understand-ea-roles",
"waf": "비용"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "ca0fe401-12ad-46fc-8a7e-86293866a9f6",
"id": "A03.04",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/azure-billing-enterprise-agreement#design-recommendations",
"severity": "보통",
"subcategory": "기업 계약",
"text": "EA 등록에서 DA View Charges와 AO View Charges를 모두 활성화하여 올바른 권한을 가진 사용자가 비용 및 청구 데이터를 검토할 수 있도록 합니다.",
"training": "https://learn.microsoft.com/azure/cost-management-billing/costs/assign-access-acm-data#enable-access-to-costs-in-the-azure-portal",
"waf": "안전"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "5cf9f485-2784-49b3-9824-75d9b8bdb57b",
"id": "A03.05",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/azure-billing-enterprise-agreement#design-considerations",
"severity": "낮다",
"subcategory": "기업 계약",
"text": "Enterprise Dev/Test Subscriptions를 사용하여 비프로덕션 워크로드에 대한 비용을 줄입니다.",
"training": "https://learn.microsoft.com/azure/devtest/offer/how-to-manage-monitor-devtest",
"waf": "비용"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "6ad5c3dd-e5ea-4ff1-81a4-7886ff87845c",
"id": "A04.01",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/azure-billing-microsoft-customer-agreement#design-recommendations",
"severity": "낮다",
"subcategory": "Microsoft 고객 계약",
"text": "계약 청구 계정 알림 연락처 이메일을 구성합니다.",
"training": "https://learn.microsoft.com/azure/cost-management-billing/manage/mca-setup-account",
"waf": "비용"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "90e87802-602f-4dfb-acea-67c60689f1d7",
"id": "A04.02",
"link": "https://learn.microsoft.com/azure/cost-management-billing/manage/mca-section-invoice",
"severity": "낮다",
"subcategory": "Microsoft 고객 계약",
"text": "청구 프로필 및 송장 섹션을 사용하여 효과적인 비용 관리를 위한 계약 청구를 구조화합니다.",
"training": "https://learn.microsoft.com/azure/cost-management-billing/understand/mca-overview#billing-profiles",
"waf": "비용"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "e81a73f0-84c4-4641-b406-14db3b4d1f50",
"id": "A04.03",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/azure-billing-microsoft-customer-agreement#design-recommendations",
"severity": "낮다",
"subcategory": "Microsoft 고객 계약",
"text": "개발/테스트 제품에 대한 Microsoft Azure 플랜을 활용하여 비프로덕션 워크로드에 대한 비용을 줄입니다.",
"training": "https://learn.microsoft.com/azure/devtest/offer/overview-what-is-devtest-offer-visual-studio",
"waf": "비용"
},
{
"category": "Azure 청구 및 Microsoft Entra ID 테넌트",
"guid": "ae757485-92a4-482a-8bc9-eefe6f5b5ec3",
"id": "A04.04",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/azure-billing-microsoft-customer-agreement#design-recommendations",
"severity": "보통",
"subcategory": "Microsoft 고객 계약",
"text": "계약 청구 RBAC 역할 할당을 정기적으로 감사하여 MCA 청구 계정에 액세스할 수 있는 사용자를 검토하는 프로세스를 정의하고 문서화합니다.",
"training": "https://learn.microsoft.com/azure/cost-management-billing/manage/understand-mca-roles",
"waf": "비용"
},
{
"category": "ID 및 액세스 관리",
"guid": "348ef254-c27d-442e-abba-c7571559ab91",
"id": "B03.01",
"link": "https://learn.microsoft.com/azure/role-based-access-control/overview",
"service": "Entra",
"severity": "높다",
"subcategory": "신원",
"text": "클라우드 운영 모델에 맞는 RBAC 모델을 적용합니다. 관리 그룹 및 구독에서 범위 지정 및 할당Scope and Assign across Management Groups and Subscriptions.",
"training": "https://learn.microsoft.com/learn/paths/implement-resource-mgmt-security/",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "4348bf81-7573-4512-8f46-9061cc198fea",
"id": "B03.02",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/identity-access-landing-zones#identity-and-access-management-in-the-azure-landing-zone-accelerator",
"severity": "높다",
"subcategory": "Microsoft Entra ID 및 하이브리드 ID",
"text": "Azure 서비스에 대한 인증을 위해 서비스 주체 대신 관리 ID를 사용합니다. Entra ID > 로그인 로그 > 서비스 주체 로그인을 통해 기존 서비스 주체를 확인할 수 있습니다.",
"training": "https://learn.microsoft.com/azure/active-directory/managed-identities-azure-resources/overview",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "12e7f983-f630-4472-8dd6-9c5b5c2622f5",
"id": "B03.02",
"link": "https://learn.microsoft.com/azure/active-directory/roles/security-planning#identify-microsoft-accounts-in-administrative-roles-that-need-to-be-switched-to-work-or-school-accounts",
"service": "Entra",
"severity": "보통",
"subcategory": "신원",
"text": "모든 계정 유형에 대해 인증 유형인 회사 또는 학교 계정만 사용합니다. Microsoft 계정을 사용하지 마십시오.",
"training": "https://learn.microsoft.com/learn/modules/explore-basic-services-identity-types/",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "4b69bad3-3aad-45e8-a68e-1d76667313b4",
"id": "B03.03",
"link": "https://learn.microsoft.com/azure/active-directory/fundamentals/active-directory-groups-create-azure-portal",
"service": "Entra",
"severity": "보통",
"subcategory": "신원",
"text": "그룹만 사용하여 사용 권한을 할당합니다. 그룹 관리 시스템이 이미 있는 경우 Entra ID 전용 그룹에 온-프레미스 그룹을 추가합니다.",
"training": "https://learn.microsoft.com/learn/paths/manage-identity-and-access/",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "53e8908a-e28c-484c-93b6-b7808b9fe5c4",
"id": "B03.04",
"link": "https://learn.microsoft.com/azure/active-directory/conditional-access/overview",
"service": "Entra",
"severity": "높다",
"subcategory": "신원",
"text": "Azure 환경에 대한 권한이 있는 모든 사용자에 대해 Microsoft Entra ID 조건부 액세스 정책을 적용합니다.",
"training": "https://learn.microsoft.com/learn/modules/plan-implement-administer-conditional-access/",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "1049d403-a923-4c34-94d0-0018ac6a9e01",
"id": "B03.05",
"link": "https://learn.microsoft.com/azure/active-directory/authentication/concept-mfa-howitworks",
"service": "Entra",
"severity": "높다",
"subcategory": "신원",
"text": "Azure 환경에 대한 권한이 있는 모든 사용자에 대해 다단계 인증을 적용합니다.",
"training": "https://learn.microsoft.com/entra/identity/authentication/concept-mandatory-multifactor-authentication",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "e6a83de5-de32-4c19-a248-1607d5d1e4e6",
"id": "B03.06",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/manage/centralize-operations",
"severity": "높다",
"subcategory": "신원",
"text": "역할 및 보안 요구 사항에 따라 landing zone 내에 배포된 리소스를 관리하기 위해 중앙 집중식 및 위임된 책임을 적용합니다.",
"training": "https://learn.microsoft.com/learn/paths/azure-administrator-manage-identities-governance/",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "14658d35-58fd-4772-99b8-21112df27ee4",
"id": "B03.07",
"link": "https://learn.microsoft.com/azure/active-directory/privileged-identity-management/pim-configure",
"service": "Entra",
"severity": "보통",
"subcategory": "신원",
"text": "Microsoft Entra ID PIM(Privileged Identity Management)을 적용하여 제로 스탠딩 액세스 및 최소 권한을 설정합니다.",
"training": "https://learn.microsoft.com/learn/modules/azure-ad-privileged-identity-management/",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "1559ab91-53e8-4908-ae28-c84c33b6b780",
"id": "B03.09",
"link": "https://learn.microsoft.com/azure/architecture/reference-architectures/identity/adds-extend-domain#vm-recommendations",
"severity": "높다",
"subcategory": "신원",
"text": "Active Directory 도메인 컨트롤러를 배포할 때 가용성 영역이 있는 위치를 사용하고 이러한 영역에 두 개 이상의 VM을 배포합니다. 사용할 수 없는 경우 가용성 집합에 배포합니다.",
"training": "https://learn.microsoft.com/learn/modules/azure-active-directory/",
"waf": "신뢰도"
},
{
"category": "ID 및 액세스 관리",
"guid": "e8aa1e41-870d-4968-94c6-77be14f510ac",
"id": "B03.10",
"link": "https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/considerations/regions#identity",
"severity": "보통",
"subcategory": "신원",
"text": "Azure 랜딩 존 ID 리소스를 여러 지역에 배포합니다. 도메인 컨트롤러를 사용하는 경우 리소스가 로컬 도메인 컨트롤러로 확인될 수 있도록 각 지역을 Active Directory 사이트와 연결합니다.",
"training": "https://learn.microsoft.com/learn/modules/azure-active-directory/",
"waf": "신뢰도"
},
{
"category": "ID 및 액세스 관리",
"guid": "f5664b5e-984a-4859-a773-e7d261623a76",
"id": "B03.11",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/identity-access#prerequisites-for-a-landing-zone---design-recommendations",
"severity": "보통",
"subcategory": "신원",
"text": "Azure 플랫폼 소유자, 네트워크 관리, 보안 작업, 구독 소유자, 애플리케이션 소유자와 같은 주요 역할에 대해 Azure 사용자 지정 RBAC 역할을 사용하여 ALZ 전체에서 세분화된 액세스를 제공합니다. 이러한 역할을 비즈니스 내의 팀과 책임에 맞게 조정하세요.",
"training": "https://learn.microsoft.com/learn/modules/create-custom-azure-roles-with-rbac/",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "8b9fe5c4-1049-4d40-9a92-3c3474d00018",
"id": "B03.12",
"link": "https://learn.microsoft.com/entra/identity/domain-services/overview",
"service": "Entra",
"severity": "보통",
"subcategory": "신원",
"text": "Active Directory Domain Services에서 Entra Domain Services로 전환하려는 경우 모든 워크로드의 호환성을 평가합니다.",
"training": "https://learn.microsoft.com/learn/modules/implement-hybrid-identity-windows-server/",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"graph": "resources | where type == 'microsoft.aad/domainservices' | extend replicaSets = properties.replicaSets | where array_length(replicaSets) < 2 | project name=name, id=id, tags=tags, param1=strcat('replicaSetLocation:', replicaSets[0].location)",
"guid": "0dd4e625-9c4b-4a56-b54a-4357bac12761",
"id": "B03.13",
"link": "https://learn.microsoft.com/entra/identity/domain-services/overview",
"service": "Entra",
"severity": "보통",
"subcategory": "신원",
"text": "Microsoft Entra Domain Services를 사용하는 경우 복제본 세트를 사용합니다. 복제본 세트는 관리되는 도메인의 복원력을 향상시키고 추가 지역에 배포할 수 있도록 합니다. ",
"training": "https://learn.microsoft.com/training/modules/understand-azure-active-directory/6-examine-azure-domain-services",
"waf": "신뢰도"
},
{
"category": "ID 및 액세스 관리",
"guid": "1cf0b8da-70bd-44d0-94af-8d99cfc89ae1",
"id": "B03.14",
"link": "https://learn.microsoft.com/azure/active-directory/reports-monitoring/concept-activity-logs-azure-monitor",
"service": "Entra",
"severity": "보통",
"subcategory": "신원",
"text": "Microsoft Entra ID 로그를 플랫폼 중앙 Azure Monitor와 통합합니다. Azure Monitor를 사용하면 Azure의 로그 및 모니터링 데이터에 대한 단일 정보 원본을 사용할 수 있으므로 조직에 로그 수집 및 보존에 대한 요구 사항을 충족하는 클라우드 네이티브 옵션을 제공합니다.",
"training": "https://learn.microsoft.com/entra/identity/monitoring-health/howto-integrate-activity-logs-with-azure-monitor-logs",
"waf": "안전"
},
{
"ammp": true,
"category": "ID 및 액세스 관리",
"guid": "984a859c-773e-47d2-9162-3a765a917e1f",
"id": "B03.15",
"link": "https://learn.microsoft.com/azure/active-directory/roles/security-emergency-access",
"service": "Entra",
"severity": "높다",
"subcategory": "신원",
"text": "응급 액세스 또는 비상 계정을 구현하여 테넌트 전체 계정 잠금을 방지합니다. MFA는 2024년 10월에 모든 사용자에 대해 기본적으로 설정됩니다. 암호 키(FIDO2)를 사용하거나 MFA에 대한 인증서 기반 인증을 구성하도록 이러한 계정을 업데이트하는 것이 좋습니다. ",
"training": "https://learn.microsoft.com/entra/identity/role-based-access-control/security-emergency-access#exclude-at-least-one-account-from-conditional-access-policies",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "cd163e39-84a5-4b39-97b7-6973abd70d94",
"id": "B03.16",
"link": "https://learn.microsoft.com/azure/active-directory/hybrid/how-to-connect-sync-staging-server",
"severity": "보통",
"subcategory": "Microsoft Entra ID",
"text": "Microsoft Entra Connect를 배포할 때 고가용성/재해 복구를 위해 스테이징 서버를 사용합니다.",
"training": "https://learn.microsoft.com/entra/identity/hybrid/connect/plan-connect-topologies",
"waf": "신뢰도"
},
{
"category": "ID 및 액세스 관리",
"guid": "35037e68-9349-4c15-b371-228514f4cdff",
"id": "B03.17",
"link": "https://learn.microsoft.com/azure/active-directory/roles/best-practices",
"service": "Entra",
"severity": "보통",
"subcategory": "신원",
"text": "특별히 필요한 시나리오가 없는 한 Microsoft Entra ID 역할 할당에 온-프레미스 동기화 계정을 사용하지 마세요.",
"training": "https://learn.microsoft.com/learn/modules/design-identity-security-strategy/",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "d5d1e4e6-1465-48d3-958f-d77249b82111",
"id": "B03.18",
"link": "https://learn.microsoft.com/azure/active-directory/app-proxy/application-proxy",
"service": "Entra",
"severity": "보통",
"subcategory": "신원",
"text": "Microsoft Entra ID 애플리케이션 프록시를 사용하여 원격 사용자에게 애플리케이션에 대한 액세스 권한을 부여하는 경우 테넌트당 하나의 인스턴스만 가질 수 있으므로 플랫폼 리소스로 관리합니다.",
"training": "https://learn.microsoft.com/learn/paths/implement-applications-external-access-azure-ad/",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "9cf5418b-1520-4b7b-add7-88eb28f833e8",
"id": "B04.01",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/identity-access-landing-zones#identity-and-access-management-in-the-azure-landing-zone-accelerator",
"severity": "높다",
"subcategory": "랜딩 존",
"text": "가상 네트워크를 사용하여 ID 네트워크 세분화를 구성하고 허브로 다시 피어링합니다. 응용 프로그램 랜딩 존(레거시) 내에서 인증을 제공합니다.",
"training": "https://learn.microsoft.com/azure/architecture/example-scenario/identity/adds-extend-domain",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "d4d1ad54-1abc-4919-b267-3f342d3b49e4",
"id": "B04.02",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/identity-access-landing-zones#rbac-recommendations",
"severity": "보통",
"subcategory": "랜딩 존",
"text": "가능한 경우 Azure RBAC를 사용하여 리소스에 대한 데이터 평면 액세스를 관리합니다. 예: Key Vault, Storage 계정 및 데이터베이스 서비스에 대한 데이터 작업예.",
"training": "https://learn.microsoft.com/azure/role-based-access-control/overview",
"waf": "안전"
},
{
"category": "ID 및 액세스 관리",
"guid": "d505ebcb-79b1-4274-9c0d-a27c8bea489c",
"id": "B04.03",
"link": "https://learn.microsoft.com/azure/active-directory/privileged-identity-management/pim-create-roles-and-resource-roles-review",
"severity": "보통",
"subcategory": "랜딩 존",
"text": "Microsoft Entra ID PIM 액세스 검토를 사용하여 리소스 권한의 유효성을 주기적으로 검사합니다.",
"training": "https://learn.microsoft.com/entra/id-governance/privileged-identity-management/pim-perform-roles-and-resource-roles-review",
"waf": "안전"
},
{
"category": "리소스 구성",
"description": "에서 사용할 수 있는 Azure 명명 도구를 사용하는 것이 좋습니다 https://aka.ms/azurenamingtool",
"guid": "cacf55bc-e4e4-46be-96bc-57a5f23a269a",
"id": "C01.01",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/resource-naming",
"severity": "높다",
"subcategory": "이름 지정 및 태그 지정",
"text": "리소스에 대해 Microsoft Best Practice Naming Standards와 같은 잘 정의된 명명 체계를 사용합니다.",
"waf": "안전"
},
{
"category": "리소스 구성",
"graph": "resourcecontainers| where type == 'microsoft.resources/subscriptions'| extend ManagementGroup = tostring(tags),mgmtChain = properties.managementGroupAncestorsChain| extend compliant =( array_length(mgmtChain) <= 4 and array_length(mgmtChain) > 1)",
"guid": "2df27ee4-12e7-4f98-9f63-04722dd69c5b",
"id": "C02.01",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/resource-org-management-groups",
"severity": "보통",
"subcategory": "구독",
"text": "4개 이하의 수준으로 합리적으로 평평한 관리 그룹 계층 구조를 적용합니다.",
"training": "https://learn.microsoft.com/learn/modules/azure-architecture-fundamentals/",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "667313b4-f566-44b5-b984-a859c773e7d2",
"id": "C02.02",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/resource-org-management-groups#management-group-recommendations",
"severity": "보통",
"subcategory": "구독",
"text": "사용자가 Azure를 즉시 실험할 수 있도록 샌드박스 관리 그룹을 적용합니다.",
"training": "https://learn.microsoft.com/learn/paths/enterprise-scale-architecture/",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "61623a76-5a91-47e1-b348-ef254c27d42e",
"id": "C02.03",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/resource-org-management-groups#management-group-recommendations",
"severity": "보통",
"subcategory": "구독",
"text": "루트 관리 그룹 아래에 플랫폼 관리 그룹을 적용하여 공통 플랫폼 정책 및 Azure 역할 할당을 지원합니다.",
"training": "https://learn.microsoft.com/learn/paths/enterprise-scale-architecture/",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "8bbac757-1559-4ab9-853e-8908ae28c84c",
"id": "C02.04",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/landing-zone/design-area/resource-org-management-groups#management-group-recommendations",
"severity": "보통",
"subcategory": "구독",
"text": "연결 관리 그룹에서 전용 연결 구독을 적용하여 Azure Virtual WAN 허브, 프라이빗 비 AD DNS(Domain Name System), ExpressRoute 회로 및 기타 네트워킹 리소스를 호스트합니다.",
"training": "https://learn.microsoft.com/learn/paths/enterprise-scale-architecture/",
"waf": "안전"
},
{
"category": "리소스 구성",
"graph": "resourcecontainers| where type == 'microsoft.resources/subscriptions'| extend ManagementGroup = tostring(tags),mgmtChain = properties.managementGroupAncestorsChain| extend compliant = (array_length(mgmtChain) > 1)",
"guid": "33b6b780-8b9f-4e5c-9104-9d403a923c34",
"id": "C02.05",
"link": "https://learn.microsoft.com/azure/governance/management-groups/how-to/protect-resource-hierarchy#setting---default-management-group",
"severity": "보통",
"subcategory": "구독",
"text": "루트 관리 그룹 아래에 구독이 배치되지 않도록 합니다.",
"training": "https://learn.microsoft.com/azure/governance/management-groups/overview",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "74d00018-ac6a-49e0-8e6a-83de5de32c19",
"id": "C02.06",
"link": "https://learn.microsoft.com/azure/governance/management-groups/how-to/protect-resource-hierarchy#setting---require-authorization",
"severity": "보통",
"subcategory": "구독",
"text": "관리 그룹 계층 구조 설정에서 Azure RBAC 권한 부여를 사용하도록 설정하여 권한 있는 사용자만 테넌트에서 관리 그룹을 작동할 수 있도록 적용합니다.",
"training": "https://learn.microsoft.com/training/modules/configure-role-based-access-control/",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "92481607-d5d1-4e4e-9146-58d3558fd772",
"id": "C02.07",
"link": "https://learn.microsoft.com/azure/governance/management-groups/overview",
"severity": "보통",
"subcategory": "구독",
"text": "루트 수준 관리 그룹 아래에 관리 그룹을 적용하여 보안, 규정 준수, 연결 및 기능 요구 사항에 따라 작업 유형을 나타냅니다.",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "49b82111-2df2-47ee-912e-7f983f630472",
"id": "C02.08",
"link": "https://learn.microsoft.com/entra/id-governance/access-reviews-overview",
"severity": "높다",
"subcategory": "구독",
"text": "리소스 소유자가 자신의 역할과 책임을 인식하고, 검토, 예산 검토, 정책 준수에 액세스하고, 필요한 경우 수정할 수 있도록 프로세스를 적용합니다.",
"training": "https://learn.microsoft.com/training/modules/plan-implement-manage-access-review/",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "2dd69c5b-5c26-422f-94b6-9bad33aad5e8",
"id": "C02.09",
"link": "https://learn.microsoft.com/azure/azure-resource-manager/management/azure-subscription-service-limits",
"severity": "보통",
"subcategory": "구독",
"text": "모든 구독 소유자와 IT 핵심 팀이 구독 할당량과 구독 할당량이 지정된 구독에 대한 리소스 프로비전에 미치는 영향을 알고 있는지 확인합니다.",
"training": "https://learn.microsoft.com/training/modules/configure-subscriptions/",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "c68e1d76-6673-413b-9f56-64b5e984a859",
"id": "C02.10",
"link": "https://learn.microsoft.com/azure/cost-management-billing/reservations/save-compute-costs-reservations",
"severity": "높다",
"subcategory": "구독",
"text": "적절한 경우 예약 인스턴스를 사용하여 비용을 최적화하고 대상 리전에서 사용 가능한 용량을 확보합니다.",
"training": "https://learn.microsoft.com/learn/paths/improve-reliability-modern-operations/",
"waf": "안전"
},
{
"ammp": true,
"category": "리소스 구성",
"guid": "c773e7d2-6162-43a7-95a9-17e1f348ef25",
"id": "C02.11",
"link": "https://learn.microsoft.com/azure/azure-portal/azure-portal-dashboards",
"severity": "보통",
"subcategory": "구독",
"text": "대시보드 및/또는 시각화를 설정하여 컴퓨팅 및 스토리지 용량 메트릭을 모니터링합니다. (예: CPU, 메모리, 디스크 공간)",
"training": "https://learn.microsoft.com/training/modules/visualize-data-workbooks/",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "ae28c84c-33b6-4b78-88b9-fe5c41049d40",
"id": "C02.12",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/get-started/manage-costs",
"severity": "높다",
"subcategory": "구독",
"text": "클라우드 도입의 일환으로 '관리형 클라우드 비용' 프로세스를 사용하여 자세한 비용 관리 계획을 구현합니다.",
"training": "https://learn.microsoft.com/learn/paths/control-spending-manage-bills/",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "3a923c34-74d0-4001-aac6-a9e01e6a83de",
"id": "C02.13",
"link": "https://learn.microsoft.com/azure/governance/management-groups/overview",
"severity": "보통",
"subcategory": "구독",
"text": "도메인 컨트롤러와 같은 ID 서비스에 서버를 사용할 경우 ID 관리 그룹에 전용 ID 구독을 설정하여 이러한 서비스를 호스트합니다. 리소스가 해당 지역에서 사용할 수 있는 도메인 컨트롤러를 사용하도록 설정되어 있는지 확인합니다.",
"training": "https://learn.microsoft.com/learn/paths/enterprise-scale-architecture/",
"waf": "안전"
},
{
"category": "리소스 구성",
"graph": "resources | extend compliant = isnotnull(['tags']) | project name, id, subscriptionId, resourceGroup, tags, compliant",
"guid": "5de32c19-9248-4160-9d5d-1e4e614658d3",
"id": "C02.14",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/track-costs",
"severity": "보통",
"subcategory": "구독",
"text": "태그가 청구 및 비용 관리에 사용되는지 확인합니다.",
"training": "https://learn.microsoft.com/learn/paths/implement-resource-mgmt-security/",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "6cc0ea22-42bb-441e-a345-804ab0a09666",
"id": "C02.15",
"link": "https://github.com/Azure/sovereign-landing-zone/blob/main/docs/02-Architecture.md",
"severity": "보통",
"subcategory": "구독",
"text": "Sovereign Landing Zone의 경우 'landing zones' MG 바로 아래에 'confidential corp' 및 'confidential online' 관리 그룹이 있습니다.",
"training": "https://learn.microsoft.com/industry/sovereignty/slz-overview",
"waf": "안전"
},
{
"category": "리소스 구성",
"guid": "250d81ce-8bbe-4f85-9051-6a18a8221e50",
"id": "C03.01",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-setup-guide/regions",
"severity": "높다",
"subcategory": "지역",
"text": "배포에 적합한 Azure 지역을 선택합니다. Azure는 여러 지역 및 지역에 걸쳐 글로벌 적용 범위를 제공하는 글로벌 규모의 클라우드 플랫폼입니다. Azure 지역마다 특성, 액세스 및 가용성 모델, 비용, 용량 및 제공되는 서비스가 다르므로 모든 조건과 요구 사항을 고려하는 것이 중요합니다.",
"training": "https://learn.microsoft.com/learn/modules/azure-architecture-fundamentals/",
"waf": "신뢰도"
},
{
"category": "리소스 구성",
"guid": "19ca3f89-397d-44b1-b5b6-5e18661372ac",
"id": "C03.02",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-setup-guide/regions#operate-in-multiple-geographic-regions",
"severity": "보통",
"subcategory": "지역",
"text": "다중 지역 배포에서 Azure 랜딩 존을 배포합니다. 고객 규모, 위치 및 사용자 현재 상태에 따라 여러 지역에서 운영하는 것이 서비스를 제공하고 더 가까운 곳에서 애플리케이션을 실행하기 위한 일반적인 선택이 될 수 있습니다. 다중 지역 배포를 사용하는 것은 지리적 재해 복구 기능을 제공하여 단일 지역 용량의 종속성을 제거하고 임시 및 지역화된 리소스 용량 제약 조건의 위험을 줄이는 데도 중요합니다.",
"training": "https://learn.microsoft.com/learn/modules/azure-architecture-fundamentals/",
"waf": "신뢰도"
},
{
"category": "리소스 구성",
"guid": "4c27d42e-8bba-4c75-9155-9ab9153e8908",
"id": "C03.03",
"link": "https://azure.microsoft.com/explore/global-infrastructure/products-by-region/",
"severity": "보통",
"subcategory": "지역",
"text": "선택한 배포 지역 내에서 필요한 서비스 및 기능을 사용할 수 있는지 확인합니다.",
"training": "https://learn.microsoft.com/learn/modules/azure-architecture-fundamentals/",
"waf": "신뢰도"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "373f482f-3e39-4d39-8aa4-7e566f6082b6",
"id": "D01.01",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/plan-for-app-delivery",
"severity": "보통",
"subcategory": "앱 제공",
"text": "Application Gateway 및 Azure Front Door를 사용하여 워크로드 스포크에서 배달 애플리케이션 콘텐츠를 보호하기 위한 표준을 문서화합니다. 응용 프로그램 배달 검사 목록을 사용하여 권장 사항을 확인할 수 있습니다.",
"waf": "작업"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "e8bbac75-7155-49ab-a153-e8908ae28c84",
"id": "D01.01",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/enterprise-scale/network-topology-and-connectivity",
"service": "VNet",
"severity": "보통",
"subcategory": "허브 앤 스포크",
"text": "최대한의 유연성이 필요한 네트워크 시나리오에는 허브 및 스포크(hub-and-spoke) 네트워크 토폴로지를 사용합니다.",
"training": "https://learn.microsoft.com/learn/paths/architect-network-infrastructure/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "7dd61623-a364-4a90-9eca-e48ebd54cd7d",
"id": "D01.02",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/traditional-azure-networking-topology",
"service": "VNet",
"severity": "높다",
"subcategory": "허브 앤 스포크",
"text": "ExpressRoute 게이트웨이, VPN 게이트웨이 및 Azure Firewall 또는 파트너 NVA를 포함한 공유 네트워킹 서비스를 중앙 허브 가상 네트워크에 배포합니다. 필요한 경우 DNS 서비스도 배포합니다.",
"training": "https://learn.microsoft.com/training/modules/hub-and-spoke-network-architecture/",
"waf": "비용"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "143b16c3-1d7a-4a9b-9470-4489a8042d88",
"id": "D01.03",
"link": "https://learn.microsoft.com/azure/ddos-protection/ddos-protection-overview",
"service": "VNet",
"severity": "높다",
"subcategory": "앱 제공",
"text": "애플리케이션 랜딩 존의 모든 공용 IP 주소에 대해 DDoS 네트워크 또는 IP 보호 계획을 사용합니다.",
"training": "https://learn.microsoft.com/learn/paths/secure-networking-infrastructure/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "e2e8abac-3571-4559-ab91-53e89f89dc7b",
"id": "D01.03",
"link": "https://learn.microsoft.com/azure/architecture/reference-architectures/dmz/nva-ha",
"service": "NVA",
"severity": "보통",
"subcategory": "허브 앤 스포크",
"text": "파트너 네트워킹 기술 또는 NVA를 배포할 때 파트너 공급업체의 지침을 따릅니다.",
"waf": "신뢰도"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "ce463dbb-bc8a-4c2a-aebc-92a43da1dae2",
"id": "D01.04",
"link": "https://learn.microsoft.com/azure/expressroute/expressroute-howto-coexist-resource-manager#to-enable-transit-routing-between-expressroute-and-azure-vpn",
"service": "ExpressRoute",
"severity": "낮다",
"subcategory": "허브 앤 스포크",
"text": "허브 및 스포크 시나리오에서 ExpressRoute와 VPN 게이트웨이 간의 전송이 필요한 경우 Azure Route Server를 사용합니다.",
"training": "https://learn.microsoft.com/training/modules/intro-to-azure-route-server/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"graph": "resources | where type=='microsoft.network/virtualnetworks' | project id,subnets=properties.subnets | mv-expand subnets | project id, subnetName = subnets.name, subnetPrefix = subnets.properties.addressPrefix | extend subnetPrefixLength = split(subnetPrefix, '/')[1] | where subnetName == 'RouteServerSubnet' | extend compliant = (subnetPrefixLength <= 27) | distinct id, compliant",
"guid": "91b9d7d5-91e1-4dcb-8f1f-fa7e465646cc",
"id": "D01.05",
"link": "https://learn.microsoft.com/azure/route-server/quickstart-configure-route-server-portal#create-a-route-server-1",
"service": "ARS",
"severity": "낮다",
"subcategory": "허브 앤 스포크",
"text": "Route Server를 사용하는 경우 Route Server 서브넷에 /27 접두사를 사용합니다.",
"training": "https://learn.microsoft.com/training/modules/intro-to-azure-route-server/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "cc881471-607c-41cc-a0e6-14658dd558f9",
"id": "D01.06",
"link": "https://learn.microsoft.com/azure/virtual-network/virtual-networks-faq#can-i-create-a-peering-connection-to-a-vnet-in-a-different-region",
"service": "VNet",
"severity": "보통",
"subcategory": "허브 앤 스포크",
"text": "Azure 지역 간에 여러 허브 및 스포크 토폴로지가 있는 네트워크 아키텍처의 경우 허브 VNet 간의 글로벌 가상 네트워크 피어링을 사용하여 지역을 서로 연결합니다.",
"training": "https://learn.microsoft.com/learn/paths/azure-administrator-manage-virtual-networks/",
"waf": "공연"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "4722d929-c1b1-4cd6-81f5-4b29bade39ad",
"id": "D01.07",
"link": "https://learn.microsoft.com/azure/azure-monitor/insights/network-insights-overview",
"service": "VNet",
"severity": "보통",
"subcategory": "허브 앤 스포크",
"text": "네트워크용 Azure Monitor를 사용하여 Azure에서 네트워크의 엔드투엔드 상태를 모니터링합니다.",
"training": "https://learn.microsoft.com/learn/modules/design-implement-network-monitoring/",
"waf": "작업"
},
{
"category": "네트워크 토폴로지 및 연결",
"graph": "resources | where type == 'microsoft.network/virtualnetworks' | mvexpand properties.virtualNetworkPeerings | summarize peeringcount = count() by id | extend compliant = (peeringcount < 450) | distinct id,compliant",
"guid": "0e7c28ec-9366-4572-83b0-f4664b1d944a",
"id": "D01.08",
"link": "https://learn.microsoft.com/azure/azure-resource-manager/management/azure-subscription-service-limits?toc=/azure/virtual-network/toc.json#azure-resource-manager-virtual-networking-limits",
"service": "VNet",
"severity": "보통",
"subcategory": "허브 앤 스포크",
"text": "한 지역에 400개 이상의 스포크 네트워크가 있는 경우 VNet 피어링 제한(500) 및 ExpressRoute를 통해 보급할 수 있는 최대 접두사 수(1000)를 우회하기 위해 추가 허브를 배포합니다.",
"training": "https://learn.microsoft.com/training/modules/hub-and-spoke-network-architecture/",
"waf": "신뢰도"
},
{
"category": "네트워크 토폴로지 및 연결",
"graph": "resources | where type=='microsoft.network/routetables' | mvexpand properties.routes | summarize routeCount = count() by id | extend compliant = (routeCount < 360) | distinct id,compliant",
"guid": "3d457936-e9b7-41eb-bdff-314b26450b12",
"id": "D01.09",
"link": "https://learn.microsoft.com/azure/azure-resource-manager/management/azure-subscription-service-limits?toc=/azure/virtual-network/toc.json#azure-resource-manager-virtual-networking-limits",
"service": "VNet",
"severity": "보통",
"subcategory": "허브 앤 스포크",
"text": "경로 테이블당 경로 수를 400개로 제한합니다.",
"training": "https://learn.microsoft.com/training/modules/hub-and-spoke-network-architecture/",
"waf": "신뢰도"
},
{
"category": "네트워크 토폴로지 및 연결",
"graph": "resources | where type == 'microsoft.network/virtualnetworks' | mvexpand properties.virtualNetworkPeerings | project id, peeringName=properties_virtualNetworkPeerings.name, compliant = (properties_virtualNetworkPeerings.properties.allowVirtualNetworkAccess == True)",
"guid": "c76cb5a2-abe2-11ed-afa1-0242ac120002",
"id": "D01.10",
"link": "https://learn.microsoft.com/azure/virtual-network/virtual-network-manage-peering",
"service": "VNet",
"severity": "높다",
"subcategory": "허브 앤 스포크",
"text": "VNet 피어링을 구성할 때 '원격 가상 네트워크에 대한 트래픽 허용' 설정을 사용합니다.",
"training": "https://learn.microsoft.com/training/modules/hub-and-spoke-network-architecture/",
"waf": "신뢰도"
},
{
"category": "네트워크 토폴로지 및 연결",
"graph": "resources | where type == 'microsoft.network/loadbalancers' | where tolower(sku.name) != 'basic' | mv-expand feIPconfigs = properties.frontendIPConfigurations | extend feConfigName = (feIPconfigs.name), PrivateSubnetId = toupper(feIPconfigs.properties.subnet.id), PrivateIPZones = feIPconfigs.zones, PIPid = toupper(feIPconfigs.properties.publicIPAddress.id), JoinID = toupper(id) | where isnotempty(PrivateSubnetId) | where isnull(PrivateIPZones) or array_length(PrivateIPZones) < 2 | project name, feConfigName, id | union (resources | where type == 'microsoft.network/loadbalancers' | where tolower(sku.name) != 'basic' | mv-expand feIPconfigs = properties.frontendIPConfigurations | extend feConfigName = (feIPconfigs.name), PIPid = toupper(feIPconfigs.properties.publicIPAddress.id), JoinID = toupper(id) | where isnotempty(PIPid) | join kind=innerunique ( resources | where type == 'microsoft.network/publicipaddresses' | where isnull(zones) or array_length(zones) < 2 | extend LBid = toupper(substring(properties.ipConfiguration.id, 0, indexof(properties.ipConfiguration.id, '/frontendIPConfigurations'))), InnerID = toupper(id) ) on $left.PIPid == $right.InnerID) | project name, id, tags, param1='Zones: No Zone or Zonal', param2=strcat('Frontend IP Configuration:', ' ', feConfigName)",
"guid": "9dcd6250-9c4a-4382-aa9b-5b84c64fc1fe",
"id": "D01.11",
"link": "https://learn.microsoft.com/en-us/azure/reliability/reliability-load-balancer?tabs=graph#zone-redundant",
"service": "Load Balancer",
"severity": "높다",
"subcategory": "허브 앤 스포크",
"text": "영역 중복 배포와 함께 표준 Load Balancer SKU를 사용하는 경우 표준 SKU Load Balancer를 선택하면 가용성 영역 및 영역 복원력을 통해 안정성이 향상되어 배포가 영역 및 지역 오류를 견딜 수 있습니다. Basic과 달리 전역 부하 분산을 지원하고 SLA를 제공합니다.",
"waf": "신뢰도"
},
{
"category": "네트워크 토폴로지 및 연결",
"graph": "resources | where type =~ 'Microsoft.Network/loadBalancers' | extend bep = properties.backendAddressPools | extend BackEndPools = array_length(bep) | where BackEndPools == 0 | project name, id, Param1='backendPools', Param2=toint(0), tags | union (resources | where type =~ 'Microsoft.Network/loadBalancers' | where sku.name == 'Standard' | extend bep = properties.backendAddressPools | extend BackEndPools = toint(array_length(bep)) | mv-expand bip = properties.backendAddressPools | extend BackendAddresses = array_length(bip.properties.loadBalancerBackendAddresses) | where toint(BackendAddresses) <= 1 | project name, id, tags, Param1='backendAddresses', Param2=toint(BackendAddresses)) | union ( resources | where type =~ 'Microsoft.Network/loadBalancers' | where sku.name == 'Basic' | mv-expand properties.backendAddressPools | extend backendPoolId = properties_backendAddressPools.id | project id, name, tags, tostring(backendPoolId), Param1='BackEndPools' | join kind = leftouter ( resources | where type =~ 'Microsoft.Network/networkInterfaces' | mv-expand properties.ipConfigurations | mv-expand properties_ipConfigurations.properties.loadBalancerBackendAddressPools | extend backendPoolId = tostring(properties_ipConfigurations_properties_loadBalancerBackendAddressPools.id) | summarize poolMembers = count() by backendPoolId | project tostring(backendPoolId), poolMembers ) on backendPoolId | where toint(poolMembers) <= 1 | extend BackendAddresses = poolMembers | project id, name, tags, Param1='backendAddresses', Param2=toint(BackendAddresses))",
"guid": "48682fb1-1e86-4458-a686-518ebd47393d",
"id": "D01.12",
"link": "https://learn.microsoft.com/en-us/azure/reliability/reliability-load-balancer?tabs=graph#zone-redundant",
"service": "Load Balancer",
"severity": "높다",
"subcategory": "허브 앤 스포크",
"text": "부하 분산 장치 백 엔드 풀에 두 개 이상의 인스턴스가 포함되어 있는지 확인하고, 백 엔드에 두 개 이상의 인스턴스를 사용하여 Azure Load Balancer를 배포하면 단일 실패 지점을 방지하고 확장성을 지원합니다.",
"waf": "신뢰도"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "de0d5973-cd4c-4d21-a088-137f5e6c4cfd",
"id": "D02.01",
"link": "https://learn.microsoft.com/azure/expressroute/expressroute-howto-macsec",
"service": "ExpressRoute",
"severity": "보통",
"subcategory": "암호화",
"text": "ExpressRoute Direct를 사용하는 경우 조직의 라우터와 MSEE 간의 계층 2 레벨에서 트래픽을 암호화하도록 MACsec을 구성합니다. 다이어그램은 흐름에서 이 암호화를 보여줍니다.",
"training": "https://learn.microsoft.com/training/modules/design-implement-azure-expressroute/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "ed301d6e-872e-452e-9611-cc58b5a4b151",
"id": "D02.02",
"link": "https://learn.microsoft.com/azure/vpn-gateway/site-to-site-vpn-private-peering",
"service": "ExpressRoute",
"severity": "보통",
"subcategory": "암호화",
"text": "MACsec을 사용할 수 없는 시나리오(예: ExpressRoute Direct를 사용하지 않음)의 경우 VPN 게이트웨이를 사용하여 ExpressRoute 개인 피어링을 통해 IPsec 터널을 설정합니다.",
"training": "https://learn.microsoft.com/learn/paths/implement-network-security/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "558fd772-49b8-4211-82df-27ee412e7f98",
"id": "D03.01",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/plan-for-ip-addressing",
"service": "ExpressRoute",
"severity": "높다",
"subcategory": "IP 플랜",
"text": "Azure 지역 및 온-프레미스 위치에서 겹치는 IP 주소 공간이 사용되지 않는지 확인합니다.",
"training": "https://learn.microsoft.com/learn/paths/architect-network-infrastructure/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"graph": "resources | where type == 'microsoft.network/virtualnetworks' | extend addressSpace = todynamic(properties.addressSpace) | extend addressPrefix = todynamic(properties.addressSpace.addressPrefixes) | mvexpand addressSpace | mvexpand addressPrefix | project name, id, location, resourceGroup, subscriptionId, cidr = addressPrefix | extend compliant = (cidr matches regex @'^(10\\\\.|172\\\\.(1[6-9]|2[0-9]|3[01])\\\\.|192\\\\.168\\\\.)') | project id, compliant, cidr",
"guid": "3f630472-2dd6-49c5-a5c2-622f54b69bad",
"id": "D03.02",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/plan-for-ip-addressing",
"service": "VNet",
"severity": "보통",
"subcategory": "IP 플랜",
"text": "개인 인터넷(RFC 1918)에 대한 주소 할당 범위의 IP 주소를 사용합니다.",
"training": "https://learn.microsoft.com/learn/paths/architect-network-infrastructure/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"graph": "resources | where type == 'microsoft.network/virtualnetworks' | extend addressSpace = todynamic(properties.addressSpace) | extend addressPrefix = todynamic(properties.addressSpace.addressPrefixes) | mvexpand addressSpace | mvexpand addressPrefix | extend addressMask = split(addressPrefix,'/')[1] | extend compliant = addressMask > 16 | project name, id, subscriptionId, resourceGroup, addressPrefix, compliant",
"guid": "33aad5e8-c68e-41d7-9667-313b4f5664b5",
"id": "D03.03",
"link": "https://learn.microsoft.com/azure/cloud-adoption-framework/ready/azure-best-practices/plan-for-ip-addressing",
"service": "VNet",
"severity": "높다",
"subcategory": "IP 플랜",
"text": "IP 주소 공간이 낭비되지 않는지 확인하고 불필요하게 큰 가상 네트워크(예: /16)를 만들지 마세요.",
"training": "https://learn.microsoft.com/learn/paths/architect-network-infrastructure/",
"waf": "공연"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "f348ef25-4c27-4d42-b8bb-ac7571559ab9",
"id": "D03.04",
"link": "https://learn.microsoft.com/azure/site-recovery/concepts-on-premises-to-azure-networking#retain-ip-addresses",
"service": "VNet",
"severity": "높다",
"subcategory": "IP 플랜",
"text": "프로덕션 및 재해 복구 사이트에 대해 겹치는 IP 주소 범위를 사용하지 마세요.",
"training": "https://learn.microsoft.com/learn/paths/az-104-manage-virtual-networks/",
"waf": "신뢰도"
},
{
"category": "네트워크 토폴로지 및 연결",
"graph": "Resources | where type =~ 'Microsoft.Network/publicIPAddresses' and sku.tier =~ 'Regional' | where isempty(zones) or array_length(zones) <= 1 | extend az = case(isempty(zones), 'Non-zonal', array_length(zones) <= 1, strcat('Zonal (', strcat_array(zones, ','), ')'), zones) | project name, id, tags, param1 = strcat('sku: ', sku.name), param2 = strcat('availabilityZone: ', az)",
"guid": "0c47f486-656d-4699-8c30-edef5b8a93c4",
"id": "D03.05",
"link": "https://learn.microsoft.com/azure/virtual-network/ip-services/public-ip-addresses#availability-zone",
"service": "Public IP Addresses",
"severity": "높다",
"subcategory": "IP 플랜",
"text": "해당하는 경우 표준 SKU 및 영역 중복 IP를 사용하며, Azure의 공용 IP 주소는 비영역, 영역 또는 영역 중복으로 사용할 수 있는 표준 SKU일 수 있습니다. 영역 중복 IP는 모든 영역에서 액세스할 수 있으므로 단일 영역 오류에 저항하여 더 높은 복원력을 제공합니다. ",
"training": "https://learn.microsoft.com/en-gb/training/modules/configure-virtual-networks/6-create-public-ip-addressing",
"waf": "신뢰도"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "153e8908-ae28-4c84-a33b-6b7808b9fe5c",
"id": "D03.06",
"link": "https://learn.microsoft.com/azure/dns/private-dns-getstarted-portal",
"service": "DNS",
"severity": "보통",
"subcategory": "IP 플랜",
"text": "Azure의 이름 확인만 필요한 환경의 경우 이름 확인을 위해 위임된 영역(예: 'azure.contoso.com')을 사용하여 확인을 위해 Azure 프라이빗 DNS를 사용합니다.",
"training": "https://learn.microsoft.com/learn/paths/az-104-manage-virtual-networks/",
"waf": "작업"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "41049d40-3a92-43c3-974d-00018ac6a9e0",
"id": "D03.07",
"link": "https://learn.microsoft.com/azure/dns/dns-private-resolver-overview",
"service": "DNS",
"severity": "보통",
"subcategory": "IP 플랜",
"text": "Azure 및 온-프레미스에서 이름 확인이 필요하고 Active Directory와 같은 기존 엔터프라이즈 DNS 서비스가 없는 환경의 경우 Azure DNS Private Resolver를 사용하여 DNS 요청을 Azure 또는 온-프레미스 DNS 서버로 라우팅합니다.",
"training": "https://learn.microsoft.com/training/modules/intro-to-azure-dns-private-resolver/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "1e6a83de-5de3-42c1-a924-81607d5d1e4e",
"id": "D03.08",
"link": "https://learn.microsoft.com/azure/virtual-network/virtual-networks-name-resolution-for-vms-and-role-instances",
"service": "DNS",
"severity": "낮다",
"subcategory": "IP 플랜",
"text": "자체 DNS(예: Red Hat OpenShift)가 필요하고 배포하는 특수 워크로드는 선호하는 DNS 솔루션을 사용해야 합니다.",
"training": "https://learn.microsoft.com/training/courses/az-700t00",
"waf": "작업"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "614658d3-558f-4d77-849b-821112df27ee",
"id": "D03.09",
"link": "https://learn.microsoft.com/azure/dns/private-dns-autoregistration",
"service": "DNS",
"severity": "높다",
"subcategory": "IP 플랜",
"text": "Azure DNS에 대한 자동 등록을 사용하도록 설정하여 가상 네트워크 내에 배포된 가상 머신에 대한 DNS 레코드의 수명 주기를 자동으로 관리합니다.",
"training": "https://learn.microsoft.com/learn/paths/az-104-manage-virtual-networks/",
"waf": "작업"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "18c80eb0-582a-4198-bf5c-d8800b2d263b",
"id": "D03.10",
"link": "https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/private-link-and-dns-integration-at-scale#private-link-and-dns-integration-in-hub-and-spoke-network-architectures",
"service": "DNS",
"severity": "보통",
"subcategory": "IP 플랜",
"text": "여러 Azure 지역 간의 DNS 확인 관리 계획 구현 및 서비스가 다른 지역으로 장애 조치(failover)되는 경우",
"training": "https://learn.microsoft.com/learn/paths/az-104-manage-virtual-networks/",
"waf": "신뢰도"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "ee1ac551-c4d5-46cf-b035-d0a3c50d87ad",
"id": "D05.01",
"link": "https://learn.microsoft.com/azure/bastion/bastion-overview",
"service": "Bastion",
"severity": "보통",
"subcategory": "인터넷",
"text": "Azure Bastion을 사용하여 네트워크에 안전하게 연결합니다.",
"training": "https://learn.microsoft.com/training/modules/intro-to-azure-bastion/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"graph": "resources | where type=='microsoft.network/virtualnetworks' | project id,subnets=properties.subnets | mv-expand subnets | project id, subnetName = subnets.name, subnetPrefix = subnets.properties.addressPrefix | extend subnetPrefixLength = split(subnetPrefix, '/')[1] | where subnetName == 'AzureBastionSubnet' | extend compliant = (subnetPrefixLength <= 26) | distinct id, compliant",
"guid": "6eab9eb6-762b-485e-8ea8-15aa5dba0bd0",
"id": "D05.02",
"link": "https://learn.microsoft.com/azure/bastion/bastion-faq#subnet",
"service": "Bastion",
"severity": "보통",
"subcategory": "인터넷",
"text": "서브넷 /26 이상에서 Azure Bastion을 사용합니다.",
"training": "https://learn.microsoft.com/training/modules/intro-to-azure-bastion/",
"waf": "안전"
},
{
"category": "네트워크 토폴로지 및 연결",
"guid": "1d7aa9b6-4704-4489-a804-2d88e79d17b7",
"id": "D05.03",
"link": "https://learn.microsoft.com/azure/web-application-firewall/afds/afds-overview",
"service": "WAF",