-
Notifications
You must be signed in to change notification settings - Fork 330
/
Copy pathacr_checklist.ko.json
323 lines (323 loc) · 16.6 KB
/
acr_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
{
"categories": [
{
"name": "안전"
},
{
"name": "네트워크 토폴로지 및 연결"
},
{
"name": "운영 관리"
},
{
"name": "플랫폼 자동화"
},
{
"name": "안전"
},
{
"name": "원장"
},
{
"name": "로깅"
},
{
"name": "네트워킹"
},
{
"name": "데이터 검색 및 분류"
},
{
"name": "데이터 마스킹"
},
{
"name": "코드"
}
],
"items": [
{
"category": "안전",
"description": "데이터 반출을 방지하기 위해 이미지 내보내기를 비활성화합니다. 이렇게 하면 이미지를 다른 ACR 인스턴스로 가져올 수 없습니다.",
"guid": "ab91932c-9fc9-4d1b-a880-37f5e6bfcb9e",
"id": "A01.01",
"link": "https://learn.microsoft.com/azure/container-registry/data-loss-prevention",
"query": "resources | where type =~ 'Microsoft.ContainerRegistry/registries' | extend acrName = name, acrId = id | extend exportPolicyStatus = properties.policies.exportPolicy.status | extend compliant = iif(exportPolicyStatus =~ 'Disabled', true, false) | project acrName, acrId, exportPolicyStatus, compliant",
"service": "ACR",
"severity": "높다",
"subcategory": "데이터 보호",
"text": "Azure Container Registry 이미지 내보내기 사용 안 함",
"waf": "안전"
},
{
"category": "안전",
"description": "Azure Container Registry에 대해 Azure Policy를 사용하도록 설정하여 감사 규정 준수 가시성 사용Enable audit compliance visibility by enabling Azure Policy for Azure Container Registry",
"guid": "d503547c-d447-4e82-9128-a7100f1cac6d",
"id": "A01.02",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-azure-policy",
"service": "ACR",
"severity": "높다",
"subcategory": "데이터 보호",
"text": "Azure Container Registry에 대한 Azure 정책 사용",
"waf": "안전"
},
{
"category": "안전",
"description": "AKV(Azure Key Vault)는 컨테이너 이미지 및 기타 아티팩트에 서명하고 확인하기 위해 AKV 플러그 인(azure-kv) 표기법과 함께 사용할 수 있는 서명 키를 저장하는 데 사용됩니다. ACR(Azure Container Registry)을 사용하면 ?az?또는?oras? CLI 명령.",
"guid": "d345293c-7639-4637-a551-c5c04e401955",
"id": "A01.03",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-tutorial-sign-build-push",
"service": "ACR",
"severity": "높다",
"subcategory": "데이터 보호",
"text": "표기법을 사용하여 컨테이너 서명 및 확인(Notary v2)",
"waf": "안전"
},
{
"category": "안전",
"description": "Azure Container Registry는 저장하는 이미지 및 기타 아티팩트를 자동으로 암호화합니다. 기본적으로 Azure는 서비스 관리형 키를 사용하여 미사용 레지스트리 콘텐츠를 자동으로 암호화합니다. 고객 관리형 키를 사용하면 추가 암호화 계층으로 기본 암호화를 보완할 수 있습니다.",
"graph": "resources | where type =~ 'Microsoft.ContainerRegistry/registries' | extend acrName = name, acrId = id | extend encryptionStatus = properties.encryption.status | extend compliant = iif(encryptionStatus == 'disabled', false, true) | project acrName, acrId, encryptionStatus, compliant",
"guid": "0bd05dc2-efd5-4d76-8d41-d2500cc47b49",
"id": "A01.04",
"link": "https://learn.microsoft.com/azure/container-registry/tutorial-customer-managed-keys",
"service": "ACR",
"severity": "보통",
"subcategory": "데이터 보호",
"text": "고객 관리형 키로 레지스트리 암호화Encrypt registry with a customer managed key",
"waf": "안전"
},
{
"category": "안전",
"description": "관리 ID를 사용하여 클라이언트 애플리케이션에서 ACRPull/Push RBAC 액세스 보호",
"guid": "8f42d78e-79dc-47b3-9bd2-a1a27e7a8e90",
"id": "A02.01",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-authentication-managed-identity",
"service": "ACR",
"severity": "높다",
"subcategory": "ID 및 액세스 제어Identity and Access Control",
"text": "서비스 주체 대신 관리 ID를 사용하여 연결",
"waf": "안전"
},
{
"category": "안전",
"description": "로컬 관리자 계정은 기본적으로 사용하지 않도록 설정되어 있으며 사용하도록 설정해서는 안 됩니다. 대신 토큰 또는 RBAC 기반 액세스 방법을 사용합니다.",
"graph": "resources | where type =~ 'microsoft.containerregistry/registries' | extend localAdminDisabled = properties.adminUserEnabled // Adjust this property as needed | extend compliant = iif(localAdminDisabled == 'false', true, false) // Check if local admin is disabled | project compliant, name, id, tags | distinct id, compliant",
"guid": "be0e38ce-e297-411b-b363-caaab79b198d",
"id": "A02.02",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-authentication-managed-identity",
"service": "ACR",
"severity": "높다",
"subcategory": "ID 및 액세스 제어Identity and Access Control",
"text": "관리부 액세스에 대한 로컬 인증 사용 안 함Disable local authentication for management plane access",
"waf": "안전"
},
{
"category": "안전",
"description": "관리자 계정을 사용하지 않도록 설정하고 ACR 끌어오기/푸시 작업을 위해 보안 주체에 RBAC 역할을 할당합니다.",
"graph": "resources | where type =~ 'microsoft.containerregistry/registries' | extend localAdminDisabled = properties.adminUserEnabled // Adjust this property as needed | extend compliant = iif(localAdminDisabled == 'false', true, false) // Check if local admin is disabled | project compliant, name, id, tags | distinct id, compliant",
"guid": "387e5ced-126c-4d13-8af5-b20c6998a646",
"id": "A02.03",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-roles?tabs=azure-cli",
"service": "ACR",
"severity": "높다",
"subcategory": "ID 및 액세스 제어Identity and Access Control",
"text": "ID 주체에 대한 관리 액세스 권한을 부여하는 대신 AcrPull 및 AcrPush RBAC 역할을 할당합니다.",
"waf": "안전"
},
{
"category": "안전",
"description": "익명 끌어오기/밀어넣기 액세스 사용 안 함Disable anonymous pull/push access",
"graph": "resources | where type =~ 'microsoft.containerregistry/registries' | extend compliant = iif(properties.anonymousPullEnabled == false, true, false) | project compliant, name, id, tags | distinct id, compliant",
"guid": "e338997e-41c7-47d7-acf6-a62a1194956d",
"id": "A02.04",
"link": "https://learn.microsoft.com/azure/container-registry/anonymous-pull-access#configure-anonymous-pull-access",
"service": "ACR",
"severity": "보통",
"subcategory": "ID 및 액세스 제어Identity and Access Control",
"text": "익명 끌어오기 액세스 사용 안 함Disable Anonymous pull access",
"waf": "안전"
},
{
"category": "안전",
"description": "토큰 인증은 AAD 보안 주체에 대한 할당을 지원하지 않습니다. 제공된 모든 토큰은 토큰에 액세스할 수 있는 모든 사람이 사용할 수 있습니다",
"guid": "698dc3a2-fd27-4b2e-8870-1a1252beedf6",
"id": "A02.05",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-authentication?tabs=azure-cli",
"service": "ACR",
"severity": "높다",
"subcategory": "ID 및 액세스 제어Identity and Access Control",
"text": "리포지토리 범위 액세스 토큰 사용 안 함Disable repository-scoped access tokens",
"waf": "안전"
},
{
"category": "안전",
"description": "신뢰할 수 있는 네트워크 내의 프라이빗 엔드포인트 뒤에 있는 ACR에 컨테이너 이미지 배포Deploy container images to an ACR behind a Private endpoint within a trusted network",
"guid": "b3bec3d4-f343-47c1-936d-b55f27a71eee",
"id": "A02.06",
"service": "ACR",
"severity": "높다",
"subcategory": "ID 및 액세스 제어Identity and Access Control",
"text": "신뢰할 수 있는 환경에서 이미지 배포",
"waf": "안전"
},
{
"category": "안전",
"description": "ACR 대상이 있는 토큰만 인증에 사용할 수 있습니다. ACR에 대한 조건부 액세스 정책을 사용하도록 설정할 때 사용됩니다.",
"guid": "3a041fd3-2947-498b-8288-b3c6a56ceb54",
"id": "A02.07",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-enable-conditional-access-policy",
"service": "ACR",
"severity": "보통",
"subcategory": "ID 및 액세스 제어Identity and Access Control",
"text": "인증을 위해 Azure ARM 대상 토큰 사용 안 함",
"waf": "안전"
},
{
"category": "안전",
"description": "'repositoryEvents' 및 'LoginEvents'를 로깅 및 모니터링의 중앙 대상으로 Log Analytics에 보내도록 진단 설정을 지정합니다. 이렇게 하면 ACR 리소스 자체에 대한 컨트롤 플레인 작업을 모니터링할 수 있습니다.",
"guid": "8a488cde-c486-42bc-9bd2-1be77f26e5e6",
"id": "A03.01",
"link": "https://learn.microsoft.com/azure/container-registry/monitor-service",
"service": "ACR",
"severity": "보통",
"subcategory": "로깅 및 모니터링",
"text": "진단 로깅 사용Enable diagnostics logging",
"waf": "안전"
},
{
"category": "안전",
"description": "서비스는 서비스 수준 IP ACL 필터링 규칙(NSG 또는 Azure Firewall 아님)을 사용하거나 '공용 네트워크 액세스 사용 안 함' 토글 스위치를 사용하여 공용 네트워크 액세스를 사용하지 않도록 지원합니다",
"guid": "21d41d25-00b7-407a-b9ea-b40fd3290798",
"id": "A04.01",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-private-link",
"service": "ACR",
"severity": "보통",
"subcategory": "네트워크 보안",
"text": "Private Link를 사용하여 인바운드 네트워크 액세스 제어",
"waf": "안전"
},
{
"category": "안전",
"description": "Private Link를 사용하여 인바운드 네트워크 액세스가 보호되는 경우 공용 네트워크 액세스 사용 안 함",
"graph": "resources | where type =~ 'Microsoft.ContainerRegistry/registries' | where sku.name =~ 'Premium' // Check for Premium SKU | extend publicAccessEnabled = properties.publicNetworkAccess | extend defaultAction = tostring(properties.networkRuleSet.defaultAction) // Extract defaultAction | extend compliant = iif(publicAccessEnabled != 'Enabled' or defaultAction == 'Deny', true, false) | project name, id, publicAccessEnabled, defaultAction, compliant",
"guid": "cd289ced-6b17-4db8-8554-62f2aee4553a",
"id": "A04.02",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-access-selected-networks#disable-public-network-access",
"service": "ACR",
"severity": "보통",
"subcategory": "네트워크 보안",
"text": "공용 네트워크 액세스 사용 안 함",
"waf": "안전"
},
{
"category": "안전",
"description": "ACR Premium SKU만 Private Link 액세스를 지원합니다.",
"graph": "resources | where type =~ 'Microsoft.ContainerRegistry/registries' | extend skuName = sku.name // Extract the SKU name | extend compliant = iif(skuName == 'Premium', true, false) // Check if SKU is Premium | project name, id, skuName, compliant",
"guid": "fc833934-8b26-42d6-ac5f-512925498f6d",
"id": "A04.03",
"link": "https://learn.microsoft.com/azure/container-registry/container-registry-skus",
"service": "ACR",
"severity": "보통",
"subcategory": "네트워크 보안",
"text": "Private Link(프리미엄 SKU)를 지원하는 Azure Container Registry SKU 사용",
"waf": "안전"
},
{
"category": "안전",
"description": "컨테이너용 Azure Defender 또는 동등한 서비스를 사용하여 컨테이너 이미지의 취약성을 검사해야 합니다.",
"guid": "bad37dac-43bc-46ce-8d7a-a9b24604489a",
"id": "A04.04",
"link": "https://learn.microsoft.com/azure/defender-for-cloud/defender-for-containers-introduction",
"service": "ACR",
"severity": "낮다",
"subcategory": "네트워크 보안",
"text": "컨테이너용 Defender를 사용하여 Azure Container Registry에서 취약성을 검사하도록 설정",
"waf": "안전"
},
{
"category": "안전",
"description": "DevSecOps 사례에 따라 취약성을 검증하고 스캔한 신뢰할 수 있는 코드를 배포합니다.",
"guid": "4451e1a2-d345-4293-a763-9637a551c5c0",
"id": "A05.01",
"service": "ACR",
"severity": "보통",
"subcategory": "취약성 관리",
"text": "유효성이 검사된 컨테이너 이미지 배포",
"waf": "안전"
},
{
"category": "안전",
"description": "지원되는 플랫폼, 프로그래밍 언어, 프로토콜 및 프레임워크의 최신 버전을 사용합니다.",
"guid": "4e401955-387e-45ce-b126-cd132af5b20c",
"id": "A05.02",
"service": "ACR",
"severity": "높다",
"subcategory": "취약성 관리",
"text": "최신 플랫폼, 언어, 프로토콜 및 프레임워크 사용",
"waf": "안전"
}
],
"metadata": {
"name": "Azure Container Registry Security Review",
"state": "Preview",
"timestamp": "October 23, 2024",
"waf": "security"
},
"severities": [
{
"name": "높다"
},
{
"name": "보통"
},
{
"name": "낮다"
}
],
"status": [
{
"description": "이 검사는 아직 검토되지 않았습니다",
"name": "확인되지 않음"
},
{
"description": "이 검사와 연관된 작업 항목이 있습니다",
"name": "열다"
},
{
"description": "이 검사는 확인되었으며 이와 관련된 추가 작업 항목이 없습니다",
"name": "성취"
},
{
"description": "현재 설계에는 적용되지 않습니다.",
"name": "해당 없음"
},
{
"description": "필요 없음",
"name": "필요 없음"
}
],
"waf": [
{
"name": "신뢰도"
},
{
"name": "안전"
},
{
"name": "비용"
},
{
"name": "작업"
},
{
"name": "공연"
}
],
"yesno": [
{
"name": "예"
},
{
"name": "아니요"
}
]
}