diff --git a/checklists/acr_checklist.ko.json b/checklists/acr_checklist.ko.json index e0c7f9ba..6d1b88d7 100644 --- a/checklists/acr_checklist.ko.json +++ b/checklists/acr_checklist.ko.json @@ -1,259 +1,260 @@ { - "categories": [ - { - "name": "안전" - }, - { - "name": "네트워크 토폴로지 및 연결" - }, - { - "name": "운영 관리" - }, - { - "name": "플랫폼 자동화" - }, - { - "name": "안전" - }, - { - "name": "원장" - }, - { - "name": "로깅" - }, - { - "name": "네트워킹" - }, - { - "name": "데이터 검색 및 분류" - }, - { - "name": "데이터 마스킹" - }, - { - "name": "코드" - } - ], + "items": [ { - "category": "안전", + "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": "높다", + "severity": "높음", "subcategory": "데이터 보호", "text": "Azure Container Registry 이미지 내보내기 사용 안 함", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "높다", + "severity": "높음", "subcategory": "데이터 보호", "text": "Azure Container Registry에 대한 Azure 정책 사용", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "높다", + "severity": "높음", "subcategory": "데이터 보호", "text": "표기법을 사용하여 컨테이너 서명 및 확인(Notary v2)", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "보통", + "severity": "중간", "subcategory": "데이터 보호", "text": "고객 관리형 키로 레지스트리 암호화Encrypt registry with a customer managed key", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "높다", + "severity": "높음", "subcategory": "ID 및 액세스 제어Identity and Access Control", "text": "서비스 주체 대신 관리 ID를 사용하여 연결", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "높다", + "severity": "높음", "subcategory": "ID 및 액세스 제어Identity and Access Control", "text": "관리부 액세스에 대한 로컬 인증 사용 안 함Disable local authentication for management plane access", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "높다", + "severity": "높음", "subcategory": "ID 및 액세스 제어Identity and Access Control", "text": "ID 주체에 대한 관리 액세스 권한을 부여하는 대신 AcrPull 및 AcrPush RBAC 역할을 할당합니다.", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "보통", + "severity": "중간", "subcategory": "ID 및 액세스 제어Identity and Access Control", "text": "익명 끌어오기 액세스 사용 안 함Disable Anonymous pull access", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "높다", + "severity": "높음", "subcategory": "ID 및 액세스 제어Identity and Access Control", "text": "리포지토리 범위 액세스 토큰 사용 안 함Disable repository-scoped access tokens", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "높다", + "severity": "높음", "subcategory": "ID 및 액세스 제어Identity and Access Control", "text": "신뢰할 수 있는 환경에서 이미지 배포", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "보통", + "severity": "중간", "subcategory": "ID 및 액세스 제어Identity and Access Control", "text": "인증을 위해 Azure ARM 대상 토큰 사용 안 함", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "보통", + "severity": "중간", "subcategory": "로깅 및 모니터링", "text": "진단 로깅 사용Enable diagnostics logging", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "보통", + "severity": "중간", "subcategory": "네트워크 보안", "text": "Private Link를 사용하여 인바운드 네트워크 액세스 제어", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "보통", + "severity": "중간", "subcategory": "네트워크 보안", "text": "공용 네트워크 액세스 사용 안 함", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "보통", + "severity": "중간", "subcategory": "네트워크 보안", "text": "Private Link(프리미엄 SKU)를 지원하는 Azure Container Registry SKU 사용", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "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": "낮다", + "severity": "낮음", "subcategory": "네트워크 보안", "text": "컨테이너용 Defender를 사용하여 Azure Container Registry에서 취약성을 검사하도록 설정", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "category": "보안", "description": "DevSecOps 사례에 따라 취약성을 검증하고 스캔한 신뢰할 수 있는 코드를 배포합니다.", "guid": "4451e1a2-d345-4293-a763-9637a551c5c0", "id": "A05.01", "service": "ACR", - "severity": "보통", + "severity": "중간", "subcategory": "취약성 관리", "text": "유효성이 검사된 컨테이너 이미지 배포", - "waf": "안전" + "waf": "보안" }, { - "category": "안전", + "category": "보안", "description": "지원되는 플랫폼, 프로그래밍 언어, 프로토콜 및 프레임워크의 최신 버전을 사용합니다.", "guid": "4e401955-387e-45ce-b126-cd132af5b20c", "id": "A05.02", "service": "ACR", - "severity": "높다", + "severity": "높음", "subcategory": "취약성 관리", "text": "최신 플랫폼, 언어, 프로토콜 및 프레임워크 사용", - "waf": "안전" + "waf": "보안" + } + ], +"categories": [ + { + "name": "보안" + }, + { + "name": "네트워크 토폴로지 및 연결" + }, + { + "name": "운영 관리" + }, + { + "name": "플랫폼 자동화" + }, + { + "name": "보안" + }, + { + "name": "원장" + }, + { + "name": "로깅" + }, + { + "name": "네트워킹" + }, + { + "name": "데이터 검색 및 분류" + }, + { + "name": "데이터 마스킹" + }, + { + "name": "코드" } ], "metadata": { @@ -264,13 +265,13 @@ }, "severities": [ { - "name": "높다" + "name": "높음" }, { - "name": "보통" + "name": "중간" }, { - "name": "낮다" + "name": "낮음" } ], "status": [ @@ -284,7 +285,7 @@ }, { "description": "이 검사는 확인되었으며 이와 관련된 추가 작업 항목이 없습니다", - "name": "성취" + "name": "이행하다" }, { "description": "현재 설계에는 적용되지 않습니다.", @@ -300,16 +301,16 @@ "name": "신뢰도" }, { - "name": "안전" + "name": "보안" }, { "name": "비용" }, { - "name": "작업" + "name": "운용" }, { - "name": "공연" + "name": "성능" } ], "yesno": [ @@ -320,4 +321,4 @@ "name": "아니요" } ] -} \ No newline at end of file +}