forked from Azure/review-checklists
-
Notifications
You must be signed in to change notification settings - Fork 0
/
aks_checklist.ja.json
718 lines (718 loc) · 37.9 KB
/
aks_checklist.ja.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
{
"items": [
{
"category": "BC州とDR",
"subcategory": "必要条件",
"text": "SLA、RTO(目標復旧時間)、RPO(目標復旧時点)などの非機能要件を定義します。",
"guid": "bc14aea6-e65d-48d9-a3ad-c218e6436b06",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/cloud-adoption-framework/ready/enterprise-scale/business-continuity-and-disaster-recovery"
},
{
"category": "BC州とDR",
"subcategory": "災害復旧",
"text": "DRテストを定期的にスケジュールして実行する",
"guid": "36cb45e5-7960-4332-9bdf-8cc23318da61",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/cloud-adoption-framework/ready/enterprise-scale/business-continuity-and-disaster-recovery"
},
{
"category": "BC州とDR",
"subcategory": "高可用性",
"text": "Azure Traffic Manager または Azure Front Door をリージョン フェールオーバーのグローバル ロード バランサーとして使用する",
"guid": "170265f4-bb46-4a39-9af7-f317284797b1",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-multi-region"
},
{
"category": "BC州とDR",
"subcategory": "高可用性",
"text": "Azure リージョンでサポートされている場合は、アベイラビリティーゾーンを使用する",
"guid": "578a219a-46be-4b54-9350-24922634292b",
"severity": "中程度",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |拡張準拠= isnotnull(ゾーン) |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/availability-zones"
},
{
"category": "BC州とDR",
"subcategory": "高可用性",
"text": "SLA でサポートされている AKS オファリングを使用する",
"guid": "71d41e36-10ccの-457b-9a4b-1410d4395898",
"severity": "高い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |準拠の拡張 = (sku.tier=='Paid') |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/uptime-sla"
},
{
"category": "BC州とDR",
"subcategory": "高可用性",
"text": "ポッドと展開定義での中断予算の使用",
"guid": "c1288b3c-6a57-4cfc-9444-51e1a3d3453a",
"severity": "低い",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-scheduler"
},
{
"category": "BC州とDR",
"subcategory": "高可用性",
"text": "プライベート レジストリを使用する場合は、複数の領域にイメージを格納するように領域レプリケーションを構成します。",
"guid": "3c763963-7a55-42d5-a15e-401955387e5c",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/container-registry/container-registry-geo-replication"
},
{
"category": "ID とアクセスの管理",
"subcategory": "同一性",
"text": "サービス プリンシパルの代わりにマネージド ID を使用する",
"guid": "ed127dd1-42b0-46b2-8c69-99a646f3389a",
"severity": "高い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conform = (properties.servicePrincipalProfile.clientId=='msi') |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/use-managed-identity"
},
{
"category": "ID とアクセスの管理",
"subcategory": "同一性",
"text": "認証を AAD と統合する (マネージド統合を使用)",
"guid": "7e42c78e-78c0-46a6-8a21-94956e698dc4",
"severity": "中程度",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conformant = isnotnull(properties.aadProfile) |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/managed-aad"
},
{
"category": "ID とアクセスの管理",
"subcategory": "同一性",
"text": "管理者 kubeconfig へのアクセスを制限する (get-credentials --admin)",
"guid": "a2fe27b2-e287-401a-8352-beedf79b488d",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/control-kubeconfig-access"
},
{
"category": "ID とアクセスの管理",
"subcategory": "同一性",
"text": "承認を AAD RBAC と統合する",
"guid": "eec4962c-c3bd-421b-b77f-26e5e6b3bec3",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/manage-azure-rbac"
},
{
"category": "ID とアクセスの管理",
"subcategory": "同一性",
"text": "Kubernetes での RBAC 特権を制限するために名前空間を使用する",
"guid": "d4f3537c-1346-4dc5-9027-a71ffe1bd05d",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-identity"
},
{
"category": "ID とアクセスの管理",
"subcategory": "同一性",
"text": "ワークロードIDにPodアイデンティティを使用する(アドオンv2は本日プレビュー中)",
"guid": "d2e0d5d7-71d4-41e3-910c-c57b4a4b1410",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-identity"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "ティッカー",
"text": "要件に最適な CNI ネットワーク プラグインを選択してください (Azure CNI をお勧めします)",
"guid": "a0f61565-9de5-458f-a372-49c831112dbd",
"severity": "高い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conform = (properties.networkProfile.networkPlugin=='azure') |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-network"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "ティッカー",
"text": "Azure CNI を使用している場合は、ノードあたりのポッドの最大数を考慮してサブネットのサイズを調整します。",
"guid": "7faf12e7-0943-4f63-8472-2da29c2b1cd6",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/configure-azure-cni"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "ティッカー",
"text": "Azure CNI を使用している場合は、ポッド/ノードの最大数を確認します (既定値は 30)",
"guid": "22f54b29-bade-43aa-b1e8-c38ec9366673",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/configure-azure-cni"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "ティッカー",
"text": "プライベート IP ロードバランサー サービスを使用する場合は、(AKS サブネットではなく) 専用サブネットを使用します。",
"description": "内部アプリの場合、組織は多くの場合、ファイアウォールで AKS サブネット全体を開きます。これにより、ノードへのネットワーク アクセスも開かれ、場合によってはポッド (Azure CNI を使用している場合) にもアクセスできるようになります。LoadBalancer IP が別のサブネットにある場合は、このサブネットのみをアプリ クライアントが使用できるようにする必要があります。もう 1 つの理由は、AKS サブネット内の IP アドレスが希少なリソースである場合、その IP アドレスをサービスに消費すると、クラスターの最大スケーラビリティが低下するためです。",
"guid": "13c00567-4b1e-4945-a459-c373e7ed6162",
"severity": "低い",
"link": "https://docs.microsoft.com/azure/aks/internal-lb"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "ティッカー",
"text": "それに応じてサービスの IP アドレス範囲のサイズを設定します (クラスターのスケーラビリティが制限されます)。",
"guid": "43f63047-22d9-429c-8b1c-d622f54b29ba",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/configure-azure-cni"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "安全",
"text": "AzFW/NVA で出力トラフィックをフィルター処理する (セキュリティ要件で義務付けられている場合)",
"guid": "3b365a91-7ecb-4e48-bbe5-4cd7df2e8bba",
"severity": "高い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conform = (properties.networkProfile.outboundType=='userDefinedRouting') |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/limit-egress-traffic"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "安全",
"text": "パブリック API エンドポイントを使用する場合は、そのエンドポイントにアクセスできる IP アドレスを制限します。",
"guid": "c4581559-bb91-463e-a908-aed8c44ce3b2",
"severity": "中程度",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conformliant = ((isnull(properties.apiServerAccessProfile.enablePrivateCluster) or properties.apiServerAccessProfile.enablePrivateCluster==false) and isnotnull(properties.apiServerAccessProfile.authorizedIPRanges)) |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/api-server-authorized-ip-ranges"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "拡張性",
"text": "入力コントローラーを使用して、LoadBalancer タイプのサービスで公開するのではなく、Web ベースのアプリを公開する",
"guid": "b3808b9f-a1cf-4204-ad01-3a923ce474db",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/concepts-network"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "ベスト プラクティス",
"text": "AGIC を使用している場合は、クラスター間で AppGW を共有しないでください。",
"guid": "CBD8AC2A-AEBC-4A2A-94Da-1DBF3DC99248",
"severity": "中程度",
"link": "https://azure.github.io/application-gateway-kubernetes-ingress/setup/install-existing/"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "費用",
"text": "プライベート エンドポイント (推奨) または仮想ネットワーク サービス エンドポイントを使用して、クラスターから PaaS サービスにアクセスする",
"guid": "c3c39c98-6bb2-4c12-859a-114b5e3df584",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/private-link/private-link-overview"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "安全",
"text": "要件で義務付けられている場合は、プライベートクラスターを使用する",
"guid": "ecccd979-3b6b-4cda-9b50-eb2eb03dda6d",
"severity": "高い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |ここで、isnotnull(properties.apiServerAccessProfile.enablePrivateCluster) |extend conform = (properties.apiServerAccessProfile.enablePrivateCluster==true) |個別の ID、準拠",
"link": "https://docs.microsoft.com/azure/aks/private-clusters"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "安全",
"text": "Kubernetes ネットワーク ポリシー オプションを有効にする (Calico/Azure)",
"guid": "58d7c892-ddb1-407d-9769-ae669ca48e4a",
"severity": "高い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conform = isnotnull(properties.networkProfile.networkPolicy) |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/use-network-policies"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "安全",
"text": "Kubernetesネットワークポリシーを使用してクラスタ内のセキュリティを強化する",
"guid": "85e2223e-ce8b-4b12-907c-a5f16f158e3e",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-network"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "安全",
"text": "Web ワークロード (UI または API) に WAF を使用する",
"guid": "a3a92c2d-e7e2-4165-a3a8-7af4a7a1f893",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-network"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "安全",
"text": "AKS 仮想ネットワークで DDoS 標準を使用する",
"guid": "9bda4776-8f24-4c11-9775-c2ea55b46a94",
"severity": "中程度",
"graph": "リソース|ここで、type=~'microsoft.containerservice/managedclusters' |プロジェクト リソースグループ,名前,プール=プロパティ。エージェントプールプロファイル |mv-expand プール |project subnetId=tostring(pools.vnetSubnetID) |ここで、isnotempty(subnetId) |subnet|Id | に、type=='microsoft.network/virtualnetworks' | project id,resourceGroup,name,enableDdosProtection=tostring(properties.enableDdosProtection),subnets=properties.subnets | mv-expand subnets | project id,resourceGroup,name,enableDdosProtection,subnetId=tostring(subnets.id))個別のID,リソースグループ,名前,有効化Ddos保護|準拠の拡張 = (有効化DdosProtection == 'true')",
"link": "https://docs.microsoft.com/azure/virtual-network/ddos-protection-overview"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "ベスト プラクティス",
"text": "AKS アプリケーション ルーティング アドオンを使用しない",
"guid": "8008ae7d-7e4b-4475-a6c8-bdbf59bce65d",
"severity": "高い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conform = (isnull(properties.addonProfiles.httpApplicationRouting) または properties.addonProfiles.httpApplicationRouting.enabled==false) |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/http-application-routing"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "ベスト プラクティス",
"text": "標準のALBを使用する(基本的なALBとは対照的に)",
"guid": "ba7da7be-9952-4914-a384-5d997cb39132",
"severity": "高い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conform = (tolower(properties.networkProfile.loadBalancerSku)=='standard') |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/load-balancer-standard"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "は",
"text": "ハイブリッド接続が必要な場合は、2xERまたはER + VPNを使用して可用性を向上させます",
"guid": "e8a03f97-8794-468d-96a7-86d60f96c97b",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/expressroute/designing-for-disaster-recovery-with-expressroute-privatepeering"
},
{
"category": "ネットワーク トポロジと接続性",
"subcategory": "安全",
"text": "高度なマイクロサービス通信管理のためのサービスメッシュの使用を検討する",
"guid": "e9855d04-c3c3-49c9-a6bb-2c12159a114b",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/servicemesh-about"
},
{
"category": "ガバナンスとセキュリティ",
"subcategory": "秘密",
"text": "CSI シークレット ストア ドライバーを使用して Azure Key Vault にシークレットを保存する",
"guid": "5e3df584-eccc-4d97-a3b6-bcda3b50eb2e",
"severity": "中程度",
"link": "https://github.com/Azure/secrets-store-csi-driver-provider-azure"
},
{
"category": "ガバナンスとセキュリティ",
"subcategory": "秘密",
"text": "クラスターのユーザー サービス プリンシパルの場合は、資格情報を定期的に (四半期ごとなど) 更新します。",
"guid": "b03dda6d-58d7-4c89-8ddb-107d5769ae66",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/update-credentials"
},
{
"category": "ガバナンスとセキュリティ",
"subcategory": "コンプライアンス",
"text": "Azure Policy for Kubernetes を使用してクラスターのコンプライアンスを確保する",
"guid": "9ca48e4a-85e2-4223-bce8-bb12307ca5f1",
"severity": "中程度",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conform = (isnotnull(properties.addonProfiles.azurepolicy) and properties.addonProfiles.azurepolicy.enabled==true) |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/governance/policy/concepts/policy-for-kubernetes"
},
{
"category": "ガバナンスとセキュリティ",
"subcategory": "コンプライアンス",
"text": "ユーザー/システム・ノード・プールを使用してアプリケーションをコントロール・プレーンから分離する",
"guid": "6f158e3e-a3a9-42c2-be7e-2165c3a87af4",
"severity": "中程度",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |プロジェクト ID,リソースグループ,名前,プール=プロパティ.agentPoolプロファイル |プロジェクト ID,名前,リソース グループ,プール数=array_length(プール) |準拠の拡張 = (プール数> 1)",
"link": "https://docs.microsoft.com/azure/aks/use-system-pools"
},
{
"category": "ガバナンスとセキュリティ",
"subcategory": "コンプライアンス",
"text": "システムノードプールに汚れを追加して専用にする",
"guid": "a7a1f893-9bda-4477-98f2-4c116775c2ea",
"severity": "低い",
"link": "https://docs.microsoft.com/azure/aks/use-system-pools"
},
{
"category": "ガバナンスとセキュリティ",
"subcategory": "コンプライアンス",
"text": "イメージにプライベート レジストリ (ACR など) を使用する",
"guid": "55b46a94-8008-4ae7-b7e4-b475b6c8bdbf",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/container-registry/"
},
{
"category": "ガバナンスとセキュリティ",
"subcategory": "コンプライアンス",
"text": "画像をスキャンして脆弱性を探す",
"guid": "59bce65d-e8a0-43f9-9879-468d66a786d6",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/security-center/container-security"
},
{
"category": "ガバナンスとセキュリティ",
"subcategory": "コンプライアンス",
"text": "Azure Security Center を使用してセキュリティ体制の脆弱性を検出する",
"guid": "cc639637-a652-42ac-89e8-06965388e9de",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/security-center/container-security"
},
{
"category": "ガバナンスとセキュリティ",
"subcategory": "コンプライアンス",
"text": "アプリの分離要件を定義する (名前空間/ノードプール/クラスター)",
"guid": "d167dd18-2b0a-4c24-8b99-9a646f8389a7",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-cluster-isolation"
},
{
"category": "コストガバナンス",
"subcategory": "費用",
"text": "kubecost などの外部アプリケーションを使用して、カストを異なるユーザーに割り当てる",
"guid": "f82cb8eb-8c0a-4a63-a25a-4956eaa8dc4a",
"severity": "低い",
"link": "https://docs.microsoft.com/azure/cloud-adoption-framework/scenarios/aks/eslz-cost-governance-with-kubecost"
},
{
"category": "オペレーションズ",
"subcategory": "貯蔵",
"text": "一時的なOSディスクを使用する",
"guid": "24367b33-6971-45b1-952b-eee0b9b588de",
"severity": "高い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |プロジェクト ID,リソースグループ,名前,プール=プロパティ.agentPoolプロファイル |mvexpand プール|extend conformant = (pools.osDiskType=='Ephemeral') |プロジェクト ID,name=strcat(name,'-',pools.name), resourceGroup, conformliant",
"link": "https://docs.microsoft.com/azure/aks/cluster-configuration"
},
{
"category": "オペレーションズ",
"subcategory": "貯蔵",
"text": "非一時ディスクの場合は、複数のポッドを実行するために高いパフォーマンスを必要とし、デフォルトのAKSログローテーションしきい値で巨大なログを生成するため、多くのポッド/ノードを実行するときは、ノードに高いIOPSとより大きなOSディスクを使用してください",
"guid": "fc4972cc - 3cd2 - 45bf - a707 - 6e9eab4bed32",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/virtual-machines/disks-types"
},
{
"category": "オペレーションズ",
"subcategory": "貯蔵",
"text": "クラスター内の状態の保持を避け、外部 (AzStorage、AzSQL、Cosmos など) にデータを格納する",
"guid": "9f7547c1-747d-4c56-868a-714435bd19dd",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-multi-region"
},
{
"category": "オペレーションズ",
"subcategory": "貯蔵",
"text": "AzFiles Standard を使用している場合は、パフォーマンス上の理由から AzFiles Premium や ANF を検討してください。",
"guid": "24429eb7-2281-4376-85cc-57b4a4b18142",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-storage"
},
{
"category": "オペレーションズ",
"subcategory": "貯蔵",
"text": "Azure ディスクと AZ を使用する場合は、LRS ディスクのゾーン内にノード プールを VolumeBindingMode:WaitForFirstConsumer を使用して適切なゾーンにストレージをプロビジョニングするか、複数のゾーンにまたがるノード プールに ZRS ディスクを使用することを検討してください。",
"guid": "83958a8c-2689-4b32-ab57-cfc64546135a",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/availability-zones#azure-disk-availability-zone-support"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "Azure Advisor でクラスターに関する推奨事項を定期的に確認する",
"guid": "337453a3-cc63-4963-9a65-22ac19e80696",
"severity": "低い",
"link": "https://docs.microsoft.com/azure/advisor/advisor-get-started"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "vscode+kubeadvisor などのインテリジェントなテキストエディタで YAML マニフェストを開発する",
"guid": "5388e9de-d167-4dd1-a2b0-ac241b999a64",
"severity": "低い",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-scheduler"
},
{
"category": "オペレーションズ",
"subcategory": "モニタリング",
"text": "コンテナインサイト(またはPrometheusなどの他のツール)を使用してクラスターメトリクスを監視する",
"guid": "6f8389a7-f82c-4b8e-a8c0-aa63a25a4956",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/azure-monitor/insights/container-insights-overview"
},
{
"category": "オペレーションズ",
"subcategory": "モニタリング",
"text": "コンテナインサイト(またはTelegraf/ElasticSearchなどの他のツール)を使用してクラスタログを保存および分析します。",
"guid": "eaa8dc4a-2436-47b3-9697-15b1752beee0",
"severity": "高い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conform = (isnotnull(properties.addonProfiles.omsagent) and properties.addonProfiles.omsagent.enabled==true) |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/azure-monitor/insights/container-insights-overview"
},
{
"category": "オペレーションズ",
"subcategory": "警告",
"text": "最も重要なメトリックに関するアラートを構成する (推奨事項については、「コンテナーの分析情報」を参照してください)。",
"guid": "67f7a9ed-5b31-4f38-a3f3-9812b2463cff",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/azure-monitor/insights/container-insights-metric-alerts"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "kubernetes のバージョンを定期的に (四半期ごとなど) アップグレードする定期的なプロセスを実行するか、AKS 自動アップグレード機能を使用する",
"guid": "e189c599-df0d-45a7-9dd4-ce32c1881370",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/supported-kubernetes-versions"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "ノードイメージのアップグレードを使用していない場合に備えて、Linuxノードのアップグレードにkuredを使用する",
"guid": "6f7c4c0d-4e51-4464-ad24-57ed67138b82",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/node-updates-kured"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "クラスター・ノード・イメージを定期的に (例えば毎週) アップグレードする定期的なプロセスを用意する",
"guid": "139c9580-ade3-426a-ba09-cf157d9f6477",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/node-image-upgrade"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "アプリケーションまたはクラスター構成を複数のクラスターにデプロイするための gitop を検討する",
"guid": "0102ce16-ee30-41e6-b882-e52e4621dd68",
"severity": "低い",
"link": "https://docs.microsoft.com/azure/architecture/example-scenario/bedrock/bedrock-automated-deployments"
},
{
"category": "オペレーションズ",
"subcategory": "費用",
"text": "時間に敏感でないワークロードのスポットノードプールを検討する",
"guid": "c5a5b252-1e44-4a59-a9d2-399c4d7b68d0",
"severity": "低い",
"link": "https://docs.microsoft.com/azure/aks/spot-node-pool"
},
{
"category": "オペレーションズ",
"subcategory": "費用",
"text": "迅速なバーストのためにAKS仮想ノードを検討する",
"guid": "c755562f-2b4e-4456-9b4d-874a748b662e",
"severity": "低い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conformliant = (isnotnull(properties.addonProfiles.aciConnectorLinux) and properties.addonProfiles.aciConnectorLinux.enabled==true) |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/concepts-scale"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "独自のガバナンスプラクティスを開発して、ノードRG(別名「infra RG」)のオペレータによって変更が実行されないようにします。",
"guid": "31d7aaab-7571-4449-ab80-53d89e89d17b",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/faq"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "カスタムノードRG(別名「インフラRG」)名を使用する",
"guid": "73b32a5a-67f7-4a9e-b5b3-1f38c3f39812",
"severity": "低い",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conformant = (properties.nodeResourceGroup !startswith 'MC_') |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/cluster-configuration"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "非推奨の Kubernetes API を YAML マニフェストで使用しないでください。",
"guid": "b2463cff-e189-4c59-adf0-d5a73dd4ce32",
"severity": "中程度",
"link": "https://kubernetes.io/docs/setup/release/notes/"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "標準ウィンドウノード",
"guid": "c1881370-6f7c-44c0-b4e5-14648d2457ed",
"severity": "低い",
"link": "https://docs.microsoft.com/azure-stack/aks-hci/adapt-apps-mixed-os-clusters"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "Windowsコンテナのパッチレベルをホストのパッチレベルと同期させる",
"guid": "67138b82-0102-4ce1-9ee3-01e6e882e52e",
"severity": "低い",
"link": "https://docs.microsoft.com/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-20H2%2Cwindows-10-20H2"
},
{
"category": "オペレーションズ",
"subcategory": "モニタリング",
"text": "ノードのCPUとメモリの使用率を監視する",
"guid": "4621dd68-c5a5-4be2-bdb1-1726769ef669",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/azure-monitor/containers/container-insights-analyze"
},
{
"category": "オペレーションズ",
"subcategory": "モニタリング",
"text": "Azure CNI を使用している場合は、ノードごとに消費されるポッド IP の割合を監視します。",
"guid": "1a4835ac-9422-423e-ae80-b123081a5417",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/configure-azure-cni"
},
{
"category": "オペレーションズ",
"subcategory": "モニタリング",
"text": "ノード内のOSディスクキューの深さを監視する",
"description": "OS ディスクの I/O は重要なリソースです。ノード内のOSがI / Oで調整されると、予期しない動作が発生し、通常はノードがNotReadyと宣言される可能性があります",
"guid": "415833ea-3ad3-4c2d-b733-165c3acbe04b",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/virtual-machines/premium-storage-performance"
},
{
"category": "オペレーションズ",
"subcategory": "モニタリング",
"text": "AzFW/NVA で出力フィルタリングを使用しない場合は、標準の ALB 割り当て SNAT ポートを監視します。",
"guid": "be209d39-fda4-4777-a424-d116785c2fa5",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/load-balancer-standard"
},
{
"category": "オペレーションズ",
"subcategory": "モニタリング",
"text": "AKS クラスターのリソース正常性通知をサブスクライブする",
"guid": "74c2ee76-569b-4a79-a57e-dedf91b022c9",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/aks-resource-health"
},
{
"category": "オペレーションズ",
"subcategory": "コンプライアンス",
"text": "マスター ログ (別名 API ログ) を Azure Monitor または任意のログ管理ソリューションに送信する",
"description": "クラスタレベルでの診断設定を使用",
"guid": "5b56ad48-408f-4e72-934c-476ba280dcf5",
"severity": "低い",
"link": "https://docs.microsoft.com/azure/aks/monitor-aks"
},
{
"category": "オペレーションズ",
"subcategory": "拡張性",
"text": "クラスター オートスケーラーを使用する",
"guid": "90ce65de-8e13-4f9c-abd4-69266abca264",
"severity": "中程度",
"graph": "ここで、type=='microsoft.containerservice/managedclusters' |extend conform = (isnotnull(properties.austoscalerProfile)) |明確なID,準拠",
"link": "https://docs.microsoft.com/azure/aks/concepts-scale"
},
{
"category": "オペレーションズ",
"subcategory": "拡張性",
"text": "必要に応じて水平ポッドオートケーラを使用する",
"guid": "faa19bfe-9d55-4d04-a3c4-919ca1b2d121",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/concepts-scale"
},
{
"category": "オペレーションズ",
"subcategory": "拡張性",
"text": "大きすぎたり小さすぎたりしない適切なノードサイズを検討する",
"description": "ノードが大きいほど、パフォーマンスが向上し、一時ディスクやネットワークの高速化などの機能が得られますが、爆発半径が増加し、スケーリングの粒度が低下します。",
"guid": "5ae124ba-34df-4585-bcdc-e9bd3bb0cdb3",
"severity": "高い",
"link": "https://blog.cloudtrooper.net/2020/10/23/which-vm-size-should-i-choose-as-aks-node/"
},
{
"category": "オペレーションズ",
"subcategory": "リソース",
"text": "ポッドの仕様で要求と制限を構成する",
"guid": "b54eb2eb-03dd-4aa3-9927-18e2edb11726",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-scheduler"
},
{
"category": "オペレーションズ",
"subcategory": "リソース",
"text": "名前空間のリソースクォータの適用",
"guid": "769ef669-1a48-435a-a942-223ece80b123",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/aks/operator-best-practices-scheduler"
},
{
"category": "オペレーションズ",
"subcategory": "リソース",
"text": "サブスクリプションにノードプールをスケールアウトするのに十分なクォータがあることを確認する",
"guid": "081a5417-4158-433e-a3ad-3c2de733165c",
"severity": "高い",
"link": "https://docs.microsoft.com/azure/azure-resource-manager/management/azure-subscription-service-limits"
},
{
"category": "アプリケーションの展開",
"subcategory": "コードとしてのインフラストラクチャ",
"text": "ARM/TF による自動化を使用して Azure リソースを作成する",
"guid": "3acbe04b-be20-49d3-afda-47778424d116",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/developer/terraform/create-k8s-cluster-with-tf-and-aks"
},
{
"category": "アプリケーションの展開",
"subcategory": "発達",
"text": "カナリアまたはブルー/グリーン展開を使用する",
"guid": "785c2fa5-5b56-4ad4-a408-fe72734c476b",
"severity": "中程度",
"link": "https://docs.microsoft.com/azure/architecture/reference-architectures/containers/aks/secure-baseline-aks"
},
{
"category": "アプリケーションの展開",
"subcategory": "発達",
"text": "イベント駆動型ワークロードを実行する場合にKEDAを使用する",
"guid": "a280dcf5-90ce-465d-b8e1-3f9ccbd46926",
"severity": "低い",
"link": "https://docs.microsoft.com/azure/azure-functions/functions-kubernetes-keda"
},
{
"category": "アプリケーションの展開",
"subcategory": "発達",
"text": "Dapr を使用してマイクロサービス開発を容易にする",
"guid": "26886d20-b66c-457b-a591-19bf8e8f5c58",
"severity": "低い",
"link": "https://dapr.io/"
}
],
"metadata": {
"name": "Azure AKS Review"
},
"severities": [
{
"name": "高い"
},
{
"name": "中程度"
},
{
"name": "低い"
}
],
"status": [
{
"name": "未検証",
"description": "このチェックはまだ見ていません"
},
{
"name": "開ける",
"description": "このチェックに関連付けられているアクションアイテムがあります"
},
{
"name": "達成",
"description": "このチェックは検証済みであり、それに関連付けられたアクションアイテムはこれ以上ありません。"
},
{
"name": "必須ではありません",
"description": "推奨事項は理解しているが、現在の要件では必要ではない"
},
{
"name": "該当なし",
"description": "現在の設計には適用されません"
}
],
"categories": [
{
"name": "ID とアクセスの管理"
},
{
"name": "ネットワーク トポロジと接続性"
},
{
"name": "BC州とDR"
},
{
"name": "ガバナンスとセキュリティ"
},
{
"name": "コストガバナンス"
},
{
"name": "オペレーションズ"
},
{
"name": "アプリケーションの展開"
}
]
}