다음을 통해 공유


데이터 보안 권장 사항

이 문서에서는 클라우드용 Microsoft Defender 볼 수 있는 모든 데이터 보안 권장 사항을 나열합니다.

사용자 환경에 표시되는 권장 사항은 보호 중인 리소스와 사용자 지정된 구성을 기반으로 합니다.

이러한 권장 사항에 대한 응답으로 수행할 수 있는 작업에 대해 알아보려면 클라우드용 Defender 권장 사항 수정을 참조하세요.

권장 사항 설명에 관련 정책이 없다고 표시되는 경우 일반적으로 권장 사항은 다른 권장 사항에 따라 달라지기 때문입니다.

예를 들어 Endpoint Protection 상태 오류를 수정해야 하는 권장 사항은 엔드포인트 보호 솔루션이 설치되어 있는지 여부를 확인하는 권장 사항에 의존합니다(Endpoint Protection 솔루션을 설치해야 함). 기본 권장 사항에는 정책이 있습니다. 정책을 기본 권장 사항으로만 제한하면 정책 관리가 간소화됩니다.

Azure 데이터 권장 사항

Azure Cosmos DB는 공용 네트워크 액세스를 사용하지 않도록 설정해야 함

설명: 공용 네트워크 액세스를 사용하지 않도록 설정하면 Cosmos DB 계정이 공용 인터넷에 노출되지 않도록 하여 보안이 향상됩니다. 프라이빗 엔드포인트를 만들면 Cosmos DB 계정의 노출을 제한할 수 있습니다. 자세히 알아보기. (관련 정책: Azure Cosmos DB는 공용 네트워크 액세스를 사용하지 않도록 설정해야 함).

심각도: 보통

(필요한 경우 사용) Azure Cosmos DB 계정은 고객 관리형 키를 사용하여 미사용 데이터를 암호화해야 합니다.

설명: 미사용 데이터 암호화에 고객 관리형 키를 사용하는 권장 사항은 기본적으로 평가되지 않지만 해당 시나리오에 사용할 수 있습니다. 데이터가 플랫폼 관리형 키를 사용하여 자동으로 암호화되므로 규정 준수 또는 제한적인 정책 요구 사항을 따라야 하는 경우에만 고객 관리형 키를 사용하도록 적용해야 합니다. 이 권장 사항을 사용하도록 설정하려면 해당 범위에 대한 보안 정책으로 이동하고 해당 정책에 대한 효과 매개 변수를 업데이트하여 고객 관리형 키의 사용을 감사하거나 적용합니다. 보안 정책 관리에서 자세히 알아봅니다. 고객 관리형 키를 사용하여 Azure Cosmos DB의 미사용 데이터 암호화를 관리합니다. 기본적으로 데이터는 서비스 관리형 키를 사용하여 미사용 시 암호화되지만 일반적으로 규정 준수 표준을 충족하려면 CMK(고객 관리형 키)가 필요합니다. CMK를 사용하면 사용자가 만들고 소유한 Azure Key Vault 키로 데이터를 암호화할 수 있습니다. 순환 및 관리를 포함하여 키의 수명 주기를 고객이 모두 제어하고 책임져야 합니다. https://aka.ms/cosmosdb-cmk에서 CMK 암호화에 대해 자세히 알아봅니다. (관련 정책: Azure Cosmos DB 계정은 고객 관리형 키를 사용하여 미사용 데이터를 암호화해야 합니다).

심각도: 낮음

(필요한 경우 사용) Azure Machine Learning 작업 영역은 CMK(고객 관리형 키)로 암호화해야 합니다.

설명: 미사용 데이터 암호화에 고객 관리형 키를 사용하는 권장 사항은 기본적으로 평가되지 않지만 해당 시나리오에 사용할 수 있습니다. 데이터가 플랫폼 관리형 키를 사용하여 자동으로 암호화되므로 규정 준수 또는 제한적인 정책 요구 사항을 따라야 하는 경우에만 고객 관리형 키를 사용하도록 적용해야 합니다. 이 권장 사항을 사용하도록 설정하려면 해당 범위에 대한 보안 정책으로 이동하고 해당 정책에 대한 효과 매개 변수를 업데이트하여 고객 관리형 키의 사용을 감사하거나 적용합니다. 보안 정책 관리에서 자세히 알아봅니다. CMK(고객 관리형 키)를 사용하여 Azure Machine Learning 작업 영역 데이터의 나머지 부분에 있는 암호화를 관리합니다. 기본적으로 고객 데이터는 서비스 관리형 키로 암호화되지만, CMK는 일반적으로 규정 준수 기준을 충족하는 데 필요합니다. CMK를 사용하면 사용자가 만들고 소유한 Azure Key Vault 키로 데이터를 암호화할 수 있습니다. 순환 및 관리를 포함하여 키의 수명 주기를 고객이 모두 제어하고 책임져야 합니다. https://aka.ms/azureml-workspaces-cmk에서 CMK 암호화에 대해 자세히 알아봅니다. (관련 정책: Azure Machine Learning 작업 영역은 CMK(고객 관리형 키)로 암호화되어야 합니다.

심각도: 낮음

Azure SQL Database는 TLS 버전 1.2 이상을 실행해야 합니다.

설명: TLS 버전을 1.2 이상으로 설정하면 TLS 1.2 이상 버전을 사용하는 클라이언트에서만 Azure SQL Database에 액세스할 수 있도록 하여 보안이 향상됩니다. 1.2 미만의 TLS 버전은 보안 취약성이 잘 문서화되었기 때문에 사용하지 않는 것이 좋습니다. (관련 정책: Azure SQL Database에서 TLS 버전 1.2 이상을 실행해야 함).

심각도: 보통

Azure SQL Managed Instance에서 공용 네트워크 액세스를 사용하지 않도록 설정해야 함

설명: Azure SQL Managed Instances에서 공용 네트워크 액세스(퍼블릭 엔드포인트)를 사용하지 않도록 설정하면 가상 네트워크 내부 또는 프라이빗 엔드포인트를 통해서만 액세스할 수 있도록 하여 보안이 향상됩니다. 공용 네트워크 액세스에 대해 자세히 알아보세요. (관련 정책: Azure SQL Managed Instance에서 공용 네트워크 액세스를 사용하지 않도록 설정해야 함).

심각도: 보통

설명: Azure Private Link를 사용하면 원본 또는 대상에서 공용 IP 주소 없이 가상 네트워크를 Azure 서비스에 연결할 수 있습니다. Private Link 플랫폼은 Azure 백본 네트워크를 통해 소비자와 서비스 간의 연결을 처리합니다. 프라이빗 엔드포인트가 Cosmos DB 계정에 매핑되면 데이터 누출 위험이 줄어듭니다. 프라이빗 링크에 대해 자세히 알아보세요. (관련 정책: Cosmos DB 계정은 프라이빗 링크를 사용해야 함).

심각도: 보통

(필요한 경우 사용) MySQL 서버는 고객 관리형 키를 사용하여 미사용 데이터를 암호화해야 합니다.

설명: 미사용 데이터 암호화에 고객 관리형 키를 사용하는 권장 사항은 기본적으로 평가되지 않지만 해당 시나리오에 사용할 수 있습니다. 데이터가 플랫폼 관리형 키를 사용하여 자동으로 암호화되므로 규정 준수 또는 제한적인 정책 요구 사항을 따라야 하는 경우에만 고객 관리형 키를 사용하도록 적용해야 합니다. 이 권장 사항을 사용하도록 설정하려면 해당 범위에 대한 보안 정책으로 이동하고 해당 정책에 대한 효과 매개 변수를 업데이트하여 고객 관리형 키의 사용을 감사하거나 적용합니다. 보안 정책 관리에서 자세히 알아봅니다. 고객 관리형 키를 사용하여 MySQL 서버의 미사용 데이터 암호화를 관리합니다. 기본적으로 데이터는 서비스 관리형 키를 사용하여 미사용 시 암호화되지만 일반적으로 규정 준수 표준을 충족하려면 CMK(고객 관리형 키)가 필요합니다. CMK를 사용하면 사용자가 만들고 소유한 Azure Key Vault 키로 데이터를 암호화할 수 있습니다. 순환 및 관리를 포함하여 키의 수명 주기를 고객이 모두 제어하고 책임져야 합니다. (관련 정책: MySQL 서버에 대해 사용자 고유의 키 데이터 보호를 사용하도록 설정해야 함).

심각도: 낮음

(필요한 경우 사용) PostgreSQL 서버는 고객 관리형 키를 사용하여 미사용 데이터를 암호화해야 합니다.

설명: 미사용 데이터 암호화에 고객 관리형 키를 사용하는 권장 사항은 기본적으로 평가되지 않지만 해당 시나리오에 사용할 수 있습니다. 데이터가 플랫폼 관리형 키를 사용하여 자동으로 암호화되므로 규정 준수 또는 제한적인 정책 요구 사항을 따라야 하는 경우에만 고객 관리형 키를 사용하도록 적용해야 합니다. 이 권장 사항을 사용하도록 설정하려면 해당 범위에 대한 보안 정책으로 이동하고 해당 정책에 대한 효과 매개 변수를 업데이트하여 고객 관리형 키의 사용을 감사하거나 적용합니다. 보안 정책 관리에서 자세히 알아봅니다. 고객 관리형 키를 사용하여 PostgreSQL 서버의 미사용 데이터 암호화를 관리합니다. 기본적으로 데이터는 서비스 관리형 키를 사용하여 미사용 시 암호화되지만 일반적으로 규정 준수 표준을 충족하려면 CMK(고객 관리형 키)가 필요합니다. CMK를 사용하면 사용자가 만들고 소유한 Azure Key Vault 키로 데이터를 암호화할 수 있습니다. 순환 및 관리를 포함하여 키의 수명 주기를 고객이 모두 제어하고 책임져야 합니다. (관련 정책: PostgreSQL 서버에 대해 사용자 고유의 키 데이터 보호를 사용하도록 설정해야 함).

심각도: 낮음

(필요한 경우 사용) SQL 관리형 인스턴스는 고객 관리형 키를 사용하여 미사용 데이터를 암호화해야 합니다.

설명: 미사용 데이터 암호화에 고객 관리형 키를 사용하는 권장 사항은 기본적으로 평가되지 않지만 해당 시나리오에 사용할 수 있습니다. 데이터가 플랫폼 관리형 키를 사용하여 자동으로 암호화되므로 규정 준수 또는 제한적인 정책 요구 사항을 따라야 하는 경우에만 고객 관리형 키를 사용하도록 적용해야 합니다. 이 권장 사항을 사용하도록 설정하려면 해당 범위에 대한 보안 정책으로 이동하고 해당 정책에 대한 효과 매개 변수를 업데이트하여 고객 관리형 키의 사용을 감사하거나 적용합니다. 보안 정책 관리에서 자세히 알아봅니다. 자체 키를 사용하여 TDE(투명한 데이터 암호화)를 구현하면 TDE 보호기에 대한 투명성과 제어력이 향상되고, HSM 지원 외부 서비스를 통한 보안이 강화되며, 업무 분리 프로모션을 제공합니다. 이 권장 사항은 관련 규정 준수 요구 사항이 있는 조직에 적용됩니다. (관련 정책: SQL 관리형 인스턴스는 고객 관리형 키를 사용하여 미사용 데이터를 암호화해야 합니다).

심각도: 낮음

(필요한 경우 사용) SQL Server는 고객 관리형 키를 사용하여 미사용 데이터를 암호화해야 합니다.

설명: 미사용 데이터 암호화에 고객 관리형 키를 사용하는 권장 사항은 기본적으로 평가되지 않지만 해당 시나리오에 사용할 수 있습니다. 데이터가 플랫폼 관리형 키를 사용하여 자동으로 암호화되므로 규정 준수 또는 제한적인 정책 요구 사항을 따라야 하는 경우에만 고객 관리형 키를 사용하도록 적용해야 합니다. 이 권장 사항을 사용하도록 설정하려면 해당 범위에 대한 보안 정책으로 이동하고 해당 정책에 대한 효과 매개 변수를 업데이트하여 고객 관리형 키의 사용을 감사하거나 적용합니다. 보안 정책 관리에서 자세히 알아봅니다. 자체 키를 사용하여 TDE(투명한 데이터 암호화)를 구현하면 TDE 보호기에 대한 투명성과 제어력이 향상되고, HSM 지원 외부 서비스를 통해 보안이 강화되며, 업무 분리 프로모션을 제공합니다. 이 권장 사항은 관련 규정 준수 요구 사항이 있는 조직에 적용됩니다. (관련 정책: SQL Server는 고객 관리형 키를 사용하여 미사용 데이터를 암호화해야 합니다).

심각도: 낮음

(필요한 경우 사용) 스토리지 계정은 암호화에 CMK(고객 관리형 키)를 사용해야 합니다.

설명: 미사용 데이터 암호화에 고객 관리형 키를 사용하는 권장 사항은 기본적으로 평가되지 않지만 해당 시나리오에 사용할 수 있습니다. 데이터가 플랫폼 관리형 키를 사용하여 자동으로 암호화되므로 규정 준수 또는 제한적인 정책 요구 사항을 따라야 하는 경우에만 고객 관리형 키를 사용하도록 적용해야 합니다. 이 권장 사항을 사용하도록 설정하려면 해당 범위에 대한 보안 정책으로 이동하고 해당 정책에 대한 효과 매개 변수를 업데이트하여 고객 관리형 키의 사용을 감사하거나 적용합니다. 보안 정책 관리에서 자세히 알아봅니다. CMK(고객 관리형 키)를 사용하여 보다 유연하게 스토리지 계정을 보호합니다. CMK를 지정하는 경우 해당 키는 데이터를 암호화하는 키에 대한 액세스를 보호하고 제어하는 데 사용됩니다. CMK를 사용하면 키 암호화 키의 회전을 제어하거나 암호화적으로 데이터를 지우는 추가 기능을 제공합니다. (관련 정책: 스토리지 계정은 암호화에 CMK(고객 관리형 키)를 사용해야 합니다.

심각도: 낮음

SQL 관리형 인스턴스 고급 데이터 보안 설정에서 모든 고급 위협 방지 유형을 사용하도록 설정해야 합니다.

설명: SQL 관리형 인스턴스에서 모든 고급 위협 방지 유형을 사용하도록 설정하는 것이 좋습니다. 모든 형식을 사용하도록 설정하면 SQL 삽입, 데이터베이스 취약성 및 기타 비정상적인 활동으로부터 보호됩니다. (관련 정책 없음)

심각도: 보통

SQL Server 고급 데이터 보안 설정에서 모든 고급 위협 방지 유형을 사용하도록 설정해야 합니다.

설명: SQL 서버에서 모든 고급 위협 방지 유형을 사용하도록 설정하는 것이 좋습니다. 모든 형식을 사용하도록 설정하면 SQL 삽입, 데이터베이스 취약성 및 기타 비정상적인 활동으로부터 보호됩니다. (관련 정책 없음)

심각도: 보통

API Management 서비스에서 가상 네트워크를 사용해야 함

설명: Azure Virtual Network 배포는 향상된 보안, 격리를 제공하며 액세스를 제어하는 인터넷이 아닌 라우팅 가능 네트워크에 API Management 서비스를 배치할 수 있습니다. 그런 다음, 다양한 VPN 기술을 사용하여 이러한 네트워크를 온-프레미스 네트워크에 연결할 수 있으며, 이를 통해 네트워크 및/또는 온-프레미스 내에서 백 엔드 서비스에 액세스할 수 있습니다. 개발자 포털 및 API 게이트웨이를 인터넷에서 또는 가상 네트워크 내에서만 액세스할 수 있게 구성할 수 있습니다. (관련 정책: API Management 서비스는 가상 네트워크를 사용해야 합니다).

심각도: 보통

설명: Azure Private Link를 사용하면 원본 또는 대상에서 공용 IP 주소 없이 가상 네트워크를 Azure 서비스에 연결할 수 있습니다. 프라이빗 링크 플랫폼은 Azure 백본 네트워크를 통해 소비자와 서비스 간의 연결을 처리합니다. 전체 서비스가 아닌 앱 구성 인스턴스에 프라이빗 엔드포인트를 매핑하면 데이터 유출 위험으로부터 보호받을 수 있습니다. https://aka.ms/appconfig/private-endpoint에서 자세히 알아보세요. (관련 정책: 앱 구성은 프라이빗 링크를 사용해야 합니다).

심각도: 보통

SQL 서버에 대한 감사 보존 기간을 90일 이상으로 설정해야 합니다.

설명: 90일 미만의 감사 보존 기간으로 구성된 SQL 서버 감사 (관련 정책: SQL 서버는 90일 이상의 감사 보존 기간 이상으로 구성해야 합니다.)

심각도: 낮음

SQL 서버에 대한 감사가 사용되도록 설정되어야 합니다.

설명: SQL Server에서 감사를 사용하도록 설정하여 서버의 모든 데이터베이스에서 데이터베이스 활동을 추적하고 감사 로그에 저장합니다. (관련 정책: SQL Server에 대한 감사를 사용하도록 설정해야 함).

심각도: 낮음

구독에 Log Analytics 에이전트의 자동 프로비저닝을 사용하도록 설정해야 합니다.

설명: 보안 취약성 및 위협을 모니터링하려면 클라우드용 Microsoft Defender Azure 가상 머신에서 데이터를 수집합니다. 데이터는 이전에 MMA(Microsoft Monitoring Agent)로 알려진 Log Analytics 에이전트에 의해 수집되며, 머신에서 다양한 보안 관련 구성 및 이벤트 로그를 읽고 분석을 위해 Log Analytics 작업 영역에 데이터를 복사합니다. 지원되는 모든 Azure VM과 생성된 모든 새 VM에 에이전트를 자동으로 배포하려면 자동 프로비저닝을 사용하도록 설정하는 것이 좋습니다. (관련 정책: 구독에서 Log Analytics 에이전트의 자동 프로비저닝을 사용하도록 설정해야 함).

심각도: 낮음

Azure Cache for Redis는 가상 네트워크 내에 있어야 함

설명: Azure VNet(Virtual Network) 배포는 Azure Cache for Redis뿐만 아니라 서브넷, 액세스 제어 정책 및 액세스를 추가로 제한하는 기타 기능에 대해 향상된 보안 및 격리를 제공합니다. Azure Cache for Redis 인스턴스가 VNet으로 구성되면 공개적으로 주소를 지정할 수 없으며, VNet 내의 가상 머신과 애플리케이션에서만 액세스할 수 있습니다. (관련 정책: Azure Cache for Redis는 가상 네트워크 내에 있어야 합니다).

심각도: 보통

Azure Database for MySQL에는 Azure Active Directory 관리자가 프로비전되어 있어야 합니다.

설명: Azure AD 인증을 사용하도록 Azure Database for MySQL에 대한 Azure AD 관리자를 프로비전합니다. Azure AD 인증을 사용하면 데이터베이스 사용자 및 기타 Microsoft 서비스 대한 간소화된 권한 관리 및 중앙 ID 관리가 가능합니다(관련 정책: MySQL 서버에 대해 Azure Active Directory 관리자를 프로비전해야 함).

심각도: 보통

Azure Database for PostgreSQL에는 Azure Active Directory 관리자가 프로비전되어 있어야 합니다.

설명: Azure AD 인증을 사용하도록 Azure Database for PostgreSQL에 대한 Azure AD 관리자를 프로비전합니다. Azure AD 인증을 사용하면 데이터베이스 사용자 및 기타 Microsoft 서비스의 권한을 간편하게 관리하고 ID를 한 곳에서 집중적으로 관리할 수 있습니다.
(관련 정책: Azure Active Directory 관리자는 PostgreSQL 서버에 대해 프로비전되어야 합니다).

심각도: 보통

Azure Database for PostgreSQL 유연한 서버에는 Microsoft Entra 인증만 사용하도록 설정해야 합니다.

설명: 로컬 인증 방법을 사용하지 않도록 설정하고 Microsoft Entra 인증을 요구하면 Microsoft Entra ID에서만 Azure Database for PostgreSQL 유연한 서버에 액세스할 수 있도록 하여 보안이 향상됩니다(관련 정책: Azure PostgreSQL 유연한 서버에는 Microsoft Entra 전용 인증을 사용하도록 설정해야 함).

심각도: 보통

Azure Cosmos DB 계정에 방화벽 규칙이 있어야 함

설명: 무단 원본의 트래픽을 방지하려면 Azure Cosmos DB 계정에 방화벽 규칙을 정의해야 합니다. 가상 네트워크 필터를 사용하도록 정의된 IP 규칙이 하나 이상 있는 계정은 규정을 준수하는 것으로 간주됩니다. 퍼블릭 액세스를 비활성화한 계정도 규정을 준수하는 것으로 간주됩니다. (관련 정책: Azure Cosmos DB 계정에는 방화벽 규칙이 있어야 합니다).

심각도: 보통

설명: Azure Private Link를 사용하면 원본 또는 대상에서 공용 IP 주소 없이 가상 네트워크를 Azure 서비스에 연결할 수 있습니다. 프라이빗 링크 플랫폼은 Azure 백본 네트워크를 통해 소비자와 서비스 간의 연결을 처리합니다. 전체 서비스 대신 Event Grid 도메인에 프라이빗 엔드포인트를 매핑하면 데이터 유출 위험으로부터 보호됩니다. https://aka.ms/privateendpoints에서 자세히 알아보세요. (관련 정책: Azure Event Grid 도메인은 프라이빗 링크를 사용해야 합니다).

심각도: 보통

설명: Azure Private Link를 사용하면 원본 또는 대상에서 공용 IP 주소 없이 가상 네트워크를 Azure 서비스에 연결할 수 있습니다. 프라이빗 링크 플랫폼은 Azure 백본 네트워크를 통해 소비자와 서비스 간의 연결을 처리합니다. 전체 서비스 대신 토픽에 프라이빗 엔드포인트를 매핑하면 데이터 유출 위험으로부터 보호됩니다. https://aka.ms/privateendpoints에서 자세히 알아보세요. (관련 정책: Azure Event Grid 토픽은 프라이빗 링크를 사용해야 합니다).

심각도: 보통

설명: Azure Private Link를 사용하면 원본 또는 대상에서 공용 IP 주소 없이 가상 네트워크를 Azure 서비스에 연결할 수 있습니다. 프라이빗 링크 플랫폼은 Azure 백본 네트워크를 통해 소비자와 서비스 간의 연결을 처리합니다. 전체 서비스가 아닌 Azure Machine Learning 작업 영역에 프라이빗 엔드포인트를 매핑하면 데이터 유출 위험으로부터 보호받을 수 있습니다. https://aka.ms/azureml-workspaces-privatelink에서 자세히 알아보세요. (관련 정책: Azure Machine Learning 작업 영역은 프라이빗 링크를 사용해야 합니다).

심각도: 보통

설명: Azure Private Link를 사용하면 원본 또는 대상에서 공용 IP 주소 없이 가상 네트워크를 Azure 서비스에 연결할 수 있습니다. 프라이빗 링크 플랫폼은 Azure 백본 네트워크를 통해 소비자와 서비스 간의 연결을 처리합니다. 전체 서비스가 아닌 SignalR 리소스에 프라이빗 엔드포인트를 매핑하면 데이터 유출 위험으로부터 보호받을 수 있습니다. https://aka.ms/asrs/privatelink에서 자세히 알아보세요. (관련 정책: Azure SignalR Service는 프라이빗 링크를 사용해야 합니다).

심각도: 보통

Azure Spring Cloud는 네트워크 주입을 사용해야 함

설명: Azure Spring Cloud 인스턴스는 다음 목적을 위해 가상 네트워크 주입을 사용해야 합니다. 1. Azure Spring Cloud를 인터넷에서 격리합니다. 2. Azure Spring Cloud를 사용하여 온-프레미스 데이터 센터의 시스템 또는 다른 가상 네트워크의 Azure 서비스와 상호 작용할 수 있습니다. 3. 고객이 Azure Spring Cloud에 대한 인바운드 및 아웃바운드 네트워크 통신을 제어할 수 있습니다. (관련 정책: Azure Spring Cloud는 네트워크 주입을 사용해야 합니다).

심각도: 보통

Azure Active Directory 관리자를 SQL Server에 대해 프로비저닝해야 합니다.

설명: AZURE AD 인증을 사용하도록 SQL Server에 대한 Azure AD 관리자를 프로비전합니다. Azure AD 인증을 사용하면 데이터베이스 사용자 및 기타 Microsoft 서비스 대한 간소화된 권한 관리 및 중앙 집중식 ID 관리를 사용할 수 있습니다. (관련 정책: Sql Server에 대해 Azure Active Directory 관리자를 프로비전해야 함).

심각도: 높음

Azure Synapse 작업 영역 인증 모드는 Azure Active Directory 전용이어야 합니다.

설명: Azure Synapse 작업 영역 인증 모드는 Azure Active Directory 전용 Azure Active Directory 인증 방법이어야 하며, Synapse 작업 영역에 인증을 위해 Azure AD ID만 필요하도록 하여 보안을 향상시킵니다. 자세히 알아보기. (관련 정책: Synapse 작업 영역은 인증에 Azure Active Directory ID만 사용해야 합니다).

심각도: 보통

코드 리포지토리에서 코드 검사 결과를 확인해야 함

설명: Defender for DevOps가 코드 리포지토리에서 취약성을 발견했습니다. 리포지토리의 보안 상태를 향상시키려면 이러한 취약성을 수정하는 것이 좋습니다. (관련 정책 없음)

심각도: 보통

코드 리포지토리에서 Dependabot 검사 확인해야 함

설명: Defender for DevOps가 코드 리포지토리에서 취약성을 발견했습니다. 리포지토리의 보안 상태를 향상시키려면 이러한 취약성을 수정하는 것이 좋습니다. (관련 정책 없음)

심각도: 보통

코드 리포지토리에서 코드 제공 인프라 검사 결과를 확인해야 함

설명: Defender for DevOps는 리포지토리에서 코드 보안 구성 문제로 인프라를 찾았습니다. 아래에 표시된 문제는 템플릿 파일에서 검색되었습니다. 관련 클라우드 리소스의 보안 상태를 향상시키려면 이러한 문제를 수정하는 것이 좋습니다. (관련 정책 없음)

심각도: 보통

코드 리포지토리에서 비밀 검사 결과를 확인해야 함

설명: Defender for DevOps가 코드 리포지토리에서 비밀을 찾았습니다. 이는 보안 위반을 방지하기 위해 즉시 수정해야 합니다. 리포지토리에 있는 비밀은 악의적 사용자가 유출하거나 검색할 수 있습니다. 이로 인해 애플리케이션 또는 서비스가 손상될 수 있습니다. Azure DevOps의 경우 Microsoft Security DevOps CredScan 도구는 실행되도록 구성된 빌드만 검색합니다. 따라서 결과는 리포지토리에 있는 비밀의 전체 상태를 반영하지 않을 수 있습니다. (관련 정책 없음)

심각도: 높음

Cognitive Services 계정은 데이터 암호화를 사용하도록 설정해야 함

설명: 이 정책은 데이터 암호화를 사용하지 않는 모든 Cognitive Services 계정을 감사합니다. 스토리지가 있는 각 계정에 대해 고객 관리형 키 또는 Microsoft 관리형 키를 사용하여 데이터 암호화를 사용하도록 설정해야 합니다. (관련 정책: Cognitive Services 계정은 데이터 암호화를 사용하도록 설정해야 함).

심각도: 낮음

Cognitive Services 계정은 고객 소유 스토리지를 사용하거나 데이터 암호화를 사용하도록 설정해야 합니다.

설명: 이 정책은 고객 소유 스토리지 또는 데이터 암호화를 사용하지 않는 Cognitive Services 계정을 감사합니다. 스토리지를 사용하는 각 Cognitive Services 계정에 대해 고객 소유 스토리지를 사용하거나 데이터 암호화를 사용하도록 설정합니다. Microsoft Cloud Security Benchmark에 맞춥니다. (관련 정책: Cognitive Services 계정은 고객 소유 스토리지를 사용하거나 데이터 암호화를 사용하도록 설정해야 합니다.)

심각도: 낮음

Azure Data Lake Store의 진단 로그를 사용하도록 설정해야 합니다.

설명: 로그를 사용하도록 설정하고 최대 1년 동안 유지합니다. 이렇게 하면 보안 인시던트가 발생하거나 네트워크가 손상된 경우 조사 목적으로 활동 내역을 다시 만들 수 있습니다. (관련 정책: Azure Data Lake Store의 진단 로그를 사용하도록 설정해야 함).

심각도: 낮음

Data Lake Analytics의 진단 로그를 사용하도록 설정해야 함

설명: 로그를 사용하도록 설정하고 최대 1년 동안 유지합니다. 이렇게 하면 보안 인시던트가 발생하거나 네트워크가 손상된 경우 조사 목적으로 활동 내역을 다시 만들 수 있습니다. (관련 정책: Data Lake Analytics의 진단 로그를 사용하도록 설정해야 함).

심각도: 낮음

심각도가 높은 경고에 대해 이메일 알림을 사용하도록 설정해야 합니다.

설명: 구독 중 하나에 잠재적인 보안 위반이 있을 때 조직의 관련 사용자에게 알림을 표시하려면 클라우드용 Defender 심각도가 높은 경고에 대해 메일 알림 사용하도록 설정합니다. (관련 정책: 심각도가 높은 경고에 대한 전자 메일 알림을 사용하도록 설정해야 함).

심각도: 낮음

심각도가 높은 경고에 대해 구독 소유자에게 이메일 알림을 사용하도록 설정해야 합니다.

설명: 구독에 잠재적인 보안 위반이 있을 때 구독 소유자에게 알림을 받도록 하려면 클라우드용 Defender 심각도가 높은 경고에 대해 구독 소유자에게 메일 알림 설정합니다. (관련 정책: 높은 심각도 경고에 대한 구독 소유자에게 전자 메일 알림을 사용하도록 설정해야 함).

심각도: 보통

MySQL 데이터베이스 서버에 대해 SSL 연결 적용을 사용하도록 설정해야 합니다.

설명: Azure Database for MySQL은 SSL(Secure Sockets Layer)을 사용하여 Azure Database for MySQL 서버를 클라이언트 애플리케이션에 연결할 수 있도록 지원합니다. 데이터베이스 서버와 클라이언트 애플리케이션 간 SSL 연결을 적용하면 서버와 애플리케이션 간 데이터 스트림을 암호화함으로써 '메시지 가로채기(man in the middle)' 공격으로부터 보호할 수 있습니다. 이 구성을 적용하면 데이터베이스 서버에 액세스할 때 항상 SSL을 사용하도록 설정됩니다. (관련 정책: MySQL 데이터베이스 서버에 대해 SSL 연결 적용을 사용하도록 설정해야 함).

심각도: 보통

PostgreSQL 데이터베이스 서버에 대해 SSL 연결 적용을 사용하도록 설정해야 합니다.

설명: Azure Database for PostgreSQL은 SSL(Secure Sockets Layer)을 사용하여 Azure Database for PostgreSQL 서버를 클라이언트 애플리케이션에 연결할 수 있도록 지원합니다. 데이터베이스 서버와 클라이언트 애플리케이션 간 SSL 연결을 적용하면 서버와 애플리케이션 간 데이터 스트림을 암호화함으로써 '메시지 가로채기(man in the middle)' 공격으로부터 보호할 수 있습니다. 이 구성을 적용하면 데이터베이스 서버에 액세스할 때 항상 SSL을 사용하도록 설정됩니다. (관련 정책: PostgreSQL 데이터베이스 서버에 대해 SSL 연결 적용을 사용하도록 설정해야 함).

심각도: 보통

함수 앱에서 취약성 결과를 해결해야 함

설명: 함수에 대한 런타임 취약성 검사는 함수 앱에서 보안 취약성을 검사하고 자세한 결과를 노출합니다. 취약성을 해결하면 서버리스 애플리케이션의 보안 상태가 크게 개선되며 공격으로부터 보호할 수 있습니다. (관련 정책 없음)

심각도: 높음

Azure Database for MariaDB에 대해 지역 중복 백업을 사용하도록 설정해야 합니다.

설명: Azure Database for MariaDB를 사용하면 데이터베이스 서버에 대한 중복성 옵션을 선택할 수 있습니다. 서버가 호스트되는 지역 내에 저장될 뿐만 아니라 지역 장애 발생 시 복구 옵션을 제공하기 위해 쌍을 이루는 지역에도 복제되는 데이터가 있는 지역 중복 백업 스토리지로 설정할 수 있습니다. 백업에 대한 지역 중복 스토리지 구성은 서버를 만들 때만 허용됩니다. (관련 정책: Azure Database for MariaDB에 대해 지역 중복 백업을 사용하도록 설정해야 합니다).

심각도: 낮음

Azure Database for MySQL에 대해 지역 중복 백업을 사용하도록 설정해야 합니다.

설명: Azure Database for MySQL을 사용하면 데이터베이스 서버에 대한 중복성 옵션을 선택할 수 있습니다. 서버가 호스트되는 지역 내에 저장될 뿐만 아니라 지역 장애 발생 시 복구 옵션을 제공하기 위해 쌍을 이루는 지역에도 복제되는 데이터가 있는 지역 중복 백업 스토리지로 설정할 수 있습니다. 백업에 대한 지역 중복 스토리지 구성은 서버를 만들 때만 허용됩니다. (관련 정책: Azure Database for MySQL에 대해 지역 중복 백업을 사용하도록 설정해야 함).

심각도: 낮음

Azure Database for PostgreSQL에 대해 지역 중복 백업을 사용하도록 설정해야 합니다.

설명: Azure Database for PostgreSQL을 사용하면 데이터베이스 서버에 대한 중복 옵션을 선택할 수 있습니다. 서버가 호스트되는 지역 내에 저장될 뿐만 아니라 지역 장애 발생 시 복구 옵션을 제공하기 위해 쌍을 이루는 지역에도 복제되는 데이터가 있는 지역 중복 백업 스토리지로 설정할 수 있습니다. 백업에 대한 지역 중복 스토리지 구성은 서버를 만들 때만 허용됩니다. (관련 정책: Azure Database for PostgreSQL에 대해 지역 중복 백업을 사용하도록 설정해야 합니다).

심각도: 낮음

코드 검사를 GitHub 리포지토리에 사용하도록 설정해야 함

설명: GitHub는 코드 검색을 사용하여 코드에서 보안 취약성 및 오류를 찾기 위해 코드를 분석합니다. 코드 검사는 코드의 기존 문제에 대한 수정을 찾고 심사하고 우선 순위를 지정하는 데 사용할 수 있습니다. 또한 코드 검사는 개발자가 새로운 문제를 도입하지 않도록 방지할 수 있습니다. 검사를 특정 날짜 및 시간에 예약하거나 리포지토리에서 푸시와 같은 특정 이벤트가 발생하는 경우 검사를 트리거할 수 있습니다. 코드 검사에서 코드의 잠재적 취약성 또는 오류를 발견하면 GitHub에서 경고를 리포지토리에 표시합니다. 취약성은 프로젝트의 기밀성, 무결성 또는 가용성을 손상시키기 위해 악용될 수 있는 프로젝트 코드의 문제입니다. (관련 정책 없음)

심각도: 보통

Dependabot 검사를 GitHub 리포지토리에 사용하도록 설정해야 함

설명: GitHub는 리포지토리에 영향을 주는 코드 종속성에서 취약성을 검색할 때 Dependabot 경고를 보냅니다. 취약성은 프로젝트 또는 해당 코드를 사용하는 기타 프로젝트의 기밀성, 무결성 또는 가용성을 손상시키기 위해 악용할 수 있는 프로젝트 코드의 문제입니다. 취약성은 공격 유형, 심각도 및 방법에 따라 다릅니다. 코드가 보안 취약성이 있는 패키지에 종속된 경우 이 취약한 종속성은 다양한 문제를 일으킬 수 있습니다. (관련 정책 없음)

심각도: 보통

비밀 검사를 GitHub 리포지토리에 사용하도록 설정해야 함

설명: GitHub는 리포지토리에 실수로 커밋된 비밀의 사기성 사용을 방지하기 위해 알려진 유형의 비밀을 리포지토리에 검사합니다. 비밀 검사는 GitHub 리포지토리에 있는 모든 분기의 전체 Git 기록에서 비밀을 검사합니다. 비밀의 예로 서비스 공급자가 인증을 위해 발급할 수 있는 토큰과 프라이빗 키가 있습니다. 비밀이 리포지토리에 체크 인되면 리포지토리에 대한 읽기 액세스 권한이 있는 모든 사용자가 비밀을 사용하여 해당 권한으로 외부 서비스에 액세스할 수 있습니다. 비밀은 프로젝트 리포지토리 외부의 안전한 전용 위치에 저장해야 합니다. (관련 정책 없음)

심각도: 높음

Azure SQL Database 서버용 Microsoft Defender를 사용하도록 설정해야 함

설명: SQL용 Microsoft Defender는 고급 SQL 보안 기능을 제공하는 통합 패키지입니다. 여기에는 잠재적인 데이터베이스 취약성을 표시 및 완화하고, 데이터베이스에 대한 위협을 나타낼 수 있는 비정상적인 활동을 검색하고, 중요한 데이터를 검색 및 분류하는 기능이 포함됩니다.

이 플랜의 보호는 Defender 계획 페이지에 표시된 대로 요금이 청구됩니다. 이 구독에 Azure SQL Database 서버가 없으면 요금이 발생하지 않습니다. 나중에 이 구독에 Azure SQL Database 서버를 만들면 자동으로 보호되고 요금이 청구됩니다. 지역별 가격 책정 세부 정보에 대해 알아봅니다.

SQL용 Microsoft Defender 소개에서 자세히 알아보세요. (관련 정책: Azure SQL Database용 Azure Defender 서버를 사용하도록 설정해야 함).

심각도: 높음

DNS용 Microsoft Defender를 사용하도록 설정해야 합니다.

설명: DNS용 Microsoft Defender는 Azure 리소스의 모든 DNS 쿼리를 지속적으로 모니터링하여 클라우드 리소스에 대한 추가 보호 계층을 제공합니다. DNS용 Defender는 DNS 계층에서 의심스러운 활동에 대해 경고합니다. DNS용 Microsoft Defender 소개에서 자세히 알아보세요. 이 Defender 플랜을 사용하도록 설정하면 요금이 청구됩니다. 클라우드용 Defender 가격 책정 페이지에서 지역별 가격 책정 세부 정보( 클라우드용 Defender 가격 책정)에 대해 알아봅니다. (관련 정책 없음)

심각도: 높음

오픈 소스 관계형 데이터베이스용 Microsoft Defender를 사용하도록 설정해야 합니다.

설명: 오픈 소스 관계형 데이터베이스용 Microsoft Defender는 데이터베이스에 액세스하거나 악용하려는 비정상적이고 잠재적으로 유해한 시도를 나타내는 비정상적인 활동을 검색합니다. 오픈 소스 관계형 데이터베이스용 Microsoft Defender 소개에서 자세히 알아봅니다.

이 계획을 사용하도록 설정하면 오픈 소스 관계형 데이터베이스를 보호하는 데 요금이 부과됩니다. 이 구독에 오픈 소스 관계형 데이터베이스가 없으면 요금이 발생하지 않습니다. 나중에 이 구독에 오픈 소스 관계형 데이터베이스를 만들면 자동으로 보호되고 해당 시간에 요금이 청구됩니다. (관련 정책 없음)

심각도: 높음

Resource Manager용 Microsoft Defender를 사용하도록 설정해야 합니다.

설명: Resource Manager용 Microsoft Defender는 조직의 리소스 관리 작업을 자동으로 모니터링합니다. 클라우드용 Defender는 위협을 감지하고 의심스러운 활동에 대해 경고합니다. 리소스 관리자용 Microsoft Defender 소개에서 자세히 알아봅니다. 이 Defender 플랜을 사용하도록 설정하면 요금이 청구됩니다. 클라우드용 Defender 가격 책정 페이지에서 지역별 가격 책정 세부 정보( 클라우드용 Defender 가격 책정)에 대해 알아봅니다. (관련 정책 없음)

심각도: 높음

작업 영역에서 컴퓨터의 SQL용 Microsoft Defender를 사용하도록 설정해야 합니다.

설명: 서버용 Microsoft Defender는 Windows 및 Linux 머신에 대한 위협 탐지 및 고급 방어를 제공합니다. 이 Defender 플랜은 구독에서는 사용하도록 설정되지만 작업 영역에서는 사용하도록 설정되지 않은 상태라면 서버용 Microsoft Defender의 전체 기능에 대해 비용을 지불하고 있음에도 불구하고 일부 이점을 놓치게 됩니다. 작업 영역의 서버용 Microsoft Defender를 사용하도록 설정하면 해당 작업 영역에 보고하는 모든 컴퓨터에 서버용 Microsoft Defender에 대한 요금이 청구됩니다. 이는 Defender 플랜이 사용하도록 설정되지 않은 구독에 있는 경우에도 마찬가지입니다. 구독의 서버용 Microsoft Defender도 사용하도록 설정하지 않는 한 해당 컴퓨터는 Azure 리소스에 대한 Just-In-Time VM 액세스, 적응형 애플리케이션 제어, 네트워크 검색을 활용할 수 없습니다. 서버용 Microsoft Defender 소개에서 자세히 알아보세요. (관련 정책 없음)

심각도: 보통

컴퓨터에서 SQL Server용 Microsoft Defender를 사용하도록 설정해야 함

설명: SQL용 Microsoft Defender는 고급 SQL 보안 기능을 제공하는 통합 패키지입니다. 여기에는 잠재적인 데이터베이스 취약성을 표시 및 완화하고, 데이터베이스에 대한 위협을 나타낼 수 있는 비정상적인 활동을 검색하고, 중요한 데이터를 검색 및 분류하는 기능이 포함됩니다.

이 권장 사항을 수정하면 컴퓨터에서 SQL 서버를 보호하는 데 요금이 부과됩니다. 이 구독의 컴퓨터에 SQL 서버가 없는 경우 요금이 부과되지 않습니다. 나중에 이 구독의 머신에 SQL 서버를 만들면 자동으로 보호되고 해당 시간에 요금이 청구됩니다. 컴퓨터의 SQL 서버용 Microsoft Defender에 대해 자세히 알아봅니다. (관련 정책: 컴퓨터의 SQL 서버용 Azure Defender를 사용하도록 설정해야 함).

심각도: 높음

보호되지 않는 Azure SQL 서버에 대해 SQL용 Microsoft Defender를 사용하도록 설정해야 합니다.

설명: SQL용 Microsoft Defender는 고급 SQL 보안 기능을 제공하는 통합 패키지입니다. 잠재적인 데이터베이스 취약성을 노출하고 완화하며 데이터베이스에 대한 위협을 나타낼 수 있는 비정상적인 활동을 검색합니다. SQL용 Microsoft Defender에서 지역별 가격 책정 세부 정보에 표시된 대로 요금이 청구됩니다. (관련 정책: SQL 서버에서 고급 데이터 보안을 사용하도록 설정해야 함).

심각도: 높음

보호되지 않는 SQL Managed Instance에 대해 Microsoft Defender for SQL을 사용하도록 설정해야 합니다

설명: SQL용 Microsoft Defender는 고급 SQL 보안 기능을 제공하는 통합 패키지입니다. 잠재적인 데이터베이스 취약성을 노출하고 완화하며 데이터베이스에 대한 위협을 나타낼 수 있는 비정상적인 활동을 검색합니다. SQL용 Microsoft Defender에서 지역별 가격 책정 세부 정보에 표시된 대로 요금이 청구됩니다. (관련 정책: SQL Managed Instance에서 고급 데이터 보안을 사용하도록 설정해야 함).

심각도: 높음

스토리지용 Microsoft Defender를 사용하도록 설정해야 함

설명: 스토리지용 Microsoft Defender는 스토리지 계정에 액세스하거나 악용하려는 비정상적이고 잠재적으로 유해한 시도를 감지합니다.

이 플랜의 보호는 Defender 계획 페이지에 표시된 대로 요금이 청구됩니다. 이 구독에 Azure Storage 계정이 없는 경우 요금이 청구되지 않습니다. 나중에 이 구독에 Azure Storage 계정을 만들면 자동으로 보호되고 요금이 청구됩니다. 지역별 가격 책정 세부 정보에 대해 알아봅니다. Microsoft Defender for Storage 소개에서 자세히 알아보세요. (관련 정책: 스토리지용 Azure Defender를 사용하도록 설정해야 함).

심각도: 높음

Network Watcher를 사용하도록 설정해야 함

설명: Network Watcher는 Azure에서 네트워크 시나리오 수준에서 상태를 모니터링하고 진단할 수 있는 지역 서비스입니다. 시나리오 수준 모니터링을 사용하면 엔드투엔드 네트워크 수준 보기에서 문제를 진단할 수 있습니다. Network Watcher에서 제공하는 네트워크 진단 및 시각화 도구를 사용하면 Azure에서 네트워크를 파악하고, 진단하고, 정보를 얻을 수 있습니다. (관련 정책: Network Watcher를 사용하도록 설정해야 함).

심각도: 낮음

Azure SQL Database에서 프라이빗 엔드포인트 연결을 사용하도록 설정해야 함

설명: 프라이빗 엔드포인트 연결은 Azure SQL Database에 대한 프라이빗 연결을 사용하도록 설정하여 보안 통신을 적용합니다. (관련 정책: Azure SQL Database에서 프라이빗 엔드포인트 연결을 사용하도록 설정해야 함).

심각도: 보통

프라이빗 엔드포인트를 MariaDB 서버에서 사용할 수 있어야 합니다.

설명: 프라이빗 엔드포인트 연결은 Azure Database for MariaDB에 대한 프라이빗 연결을 사용하도록 설정하여 보안 통신을 적용합니다. 알려진 네트워크에서 들어오는 트래픽에만 액세스할 수 있고 Azure 내부를 비롯한 다른 IP 주소의 액세스를 차단하도록 프라이빗 엔드포인트 연결을 구성합니다. (관련 정책: MariaDB 서버에 대해 프라이빗 엔드포인트를 사용하도록 설정해야 함).

심각도: 보통

프라이빗 엔드포인트를 MySQL 서버에서 사용할 수 있어야 합니다.

설명: 프라이빗 엔드포인트 연결은 Azure Database for MySQL에 대한 프라이빗 연결을 사용하도록 설정하여 보안 통신을 적용합니다. 알려진 네트워크에서 들어오는 트래픽에만 액세스할 수 있고 Azure 내부를 비롯한 다른 IP 주소의 액세스를 차단하도록 프라이빗 엔드포인트 연결을 구성합니다. (관련 정책: MySQL 서버에 대해 프라이빗 엔드포인트를 사용하도록 설정해야 함).

심각도: 보통

프라이빗 엔드포인트를 PostgreSQL 서버에서 사용할 수 있어야 합니다.

설명: 프라이빗 엔드포인트 연결은 Azure Database for PostgreSQL에 대한 프라이빗 연결을 사용하도록 설정하여 보안 통신을 적용합니다. 알려진 네트워크에서 들어오는 트래픽에만 액세스할 수 있고 Azure 내부를 비롯한 다른 IP 주소의 액세스를 차단하도록 프라이빗 엔드포인트 연결을 구성합니다. (관련 정책: PostgreSQL 서버에 대해 프라이빗 엔드포인트를 사용하도록 설정해야 함).

심각도: 보통

Azure SQL Database에서 공용 네트워크 액세스를 사용하지 않도록 설정해야 함

설명: 공용 네트워크 액세스 속성을 사용하지 않도록 설정하면 Azure SQL Database가 프라이빗 엔드포인트에서만 액세스할 수 있도록 하여 보안이 향상됩니다. 이 구성은 IP 또는 가상 네트워크 기반 방화벽 규칙과 일치하는 모든 로그인을 거부합니다. (관련 정책: Azure SQL Database에서 공용 네트워크 액세스를 사용하지 않도록 설정해야 함).

심각도: 보통

Cognitive Services 계정에 대해 공용 네트워크 액세스를 사용하지 않도록 설정해야 함

설명: 이 정책은 공용 네트워크 액세스를 사용하도록 설정된 환경의 모든 Cognitive Services 계정을 감사합니다. 프라이빗 엔드포인트의 연결만 허용되도록 공용 네트워크 액세스를 사용하지 않도록 설정해야 합니다. (관련 정책: Cognitive Services 계정에 대해 공용 네트워크 액세스를 사용하지 않도록 설정해야 함).

심각도: 보통

MariaDB 서버에 대해 공용 네트워크 액세스를 사용하지 않도록 설정해야 합니다.

설명: 공용 네트워크 액세스 속성을 사용하지 않도록 설정하여 보안을 개선하고 프라이빗 엔드포인트에서만 Azure Database for MariaDB에 액세스할 수 있는지 확인합니다. 이 구성은 Azure IP 범위를 벗어나는 공용 주소 공간의 액세스를 엄격하게 차단하고, IP 또는 가상 네트워크 기반 방화벽 규칙에 부합하는 모든 로그인을 거부합니다. (관련 정책: MariaDB 서버의 경우 공용 네트워크 액세스를 사용하지 않도록 설정해야 함).

심각도: 보통

MySQL 서버에 대해 공용 네트워크 액세스를 사용하지 않도록 설정해야 합니다.

설명: 공용 네트워크 액세스 속성을 사용하지 않도록 설정하여 보안을 개선하고 프라이빗 엔드포인트에서만 Azure Database for MySQL에 액세스할 수 있는지 확인합니다. 이 구성은 Azure IP 범위를 벗어나는 공용 주소 공간의 액세스를 엄격하게 차단하고, IP 또는 가상 네트워크 기반 방화벽 규칙에 부합하는 모든 로그인을 거부합니다. (관련 정책: MySQL 서버에 대해 공용 네트워크 액세스를 사용하지 않도록 설정해야 함).

심각도: 보통

PostgreSQL 서버에 대해 공용 네트워크 액세스를 사용하지 않도록 설정해야 합니다.

설명: 공용 네트워크 액세스 속성을 사용하지 않도록 설정하여 보안을 개선하고 Azure Database for PostgreSQL이 프라이빗 엔드포인트에서만 액세스할 수 있는지 확인합니다. 이 구성은 Azure IP 범위를 벗어나는 공용 주소 공간에서의 액세스를 사용하지 않도록 설정하고, IP 또는 가상 네트워크 기반 방화벽 규칙과 일치하는 모든 로그인을 거부합니다. (관련 정책: PostgreSQL 서버의 경우 공용 네트워크 액세스를 사용하지 않도록 설정해야 합니다).

심각도: 보통

Redis Cache는 SSL을 통해서만 액세스를 허용해야 합니다.

설명: SSL을 통해 Redis Cache로의 연결만 사용하도록 설정합니다. 보안 연결을 사용하면 서버와 서비스 간의 인증이 보장되고 전송 중인 데이터를 중간에서 맨인 더 미들, 도청 및 세션 하이재킹과 같은 네트워크 계층 공격으로부터 보호합니다. (관련 정책: Azure Cache for Redis에 대한 보안 연결만 사용하도록 설정해야 함).

심각도: 높음

SQL 데이터베이스가 발견한 취약성을 해결해야 함

설명: SQL 취약성 평가는 데이터베이스에서 보안 취약성을 검사하고 잘못된 구성, 과도한 권한 및 보호되지 않는 중요한 데이터와 같은 모범 사례의 편차를 노출합니다. 발견된 취약성을 해결하면 데이터베이스 보안 상태가 크게 향상될 수 있습니다. 자세한 정보(관련 정책: SQL 데이터베이스의 취약성을 수정해야 함).

심각도: 높음

SQL 관리되는 인스턴스에 취약성 평가가 구성되어 있어야 합니다.

설명: 취약성 평가는 잠재적인 데이터베이스 취약성을 검색, 추적 및 수정하는 데 도움이 될 수 있습니다. (관련 정책: SQL Managed Instance에서 취약성 평가를 사용하도록 설정해야 함).

심각도: 높음

컴퓨터의 SQL Server는 발견한 취약성을 해결해야 함

설명: SQL 취약성 평가는 데이터베이스에서 보안 취약성을 검사하고 잘못된 구성, 과도한 권한 및 보호되지 않는 중요한 데이터와 같은 모범 사례의 편차를 노출합니다. 발견된 취약성을 해결하면 데이터베이스 보안 상태가 크게 향상될 수 있습니다. 자세한 정보(관련 정책: 컴퓨터의 SQL 서버 취약성을 수정해야 함).

심각도: 높음

Azure Active Directory 관리자를 SQL Server에 대해 프로비저닝해야 합니다.

설명: AZURE AD 인증을 사용하도록 SQL Server에 대한 Azure AD 관리자를 프로비전합니다. Azure AD 인증을 사용하면 데이터베이스 사용자 및 기타 Microsoft 서비스 대한 간소화된 권한 관리 및 중앙 집중식 ID 관리를 사용할 수 있습니다. (관련 정책: Sql Server에 대해 Azure Active Directory 관리자를 프로비전해야 함).

심각도: 높음

SQL Server에 취약성 평가가 구성되어 있어야 합니다.

설명: 취약성 평가는 잠재적인 데이터베이스 취약성을 검색, 추적 및 수정하는 데 도움이 될 수 있습니다. (관련 정책: SQL 서버에서 취약성 평가를 사용하도록 설정해야 함).

심각도: 높음

설명: 프라이빗 링크는 스토리지 계정에 프라이빗 연결을 제공하여 보안 통신을 적용합니다(관련 정책: 스토리지 계정은 프라이빗 링크 연결을 사용해야 합니다).

심각도: 보통

스토리지 계정을 새 Azure Resource Manager 리소스로 마이그레이션해야 함

설명: Azure Resource Manager의 새로운 기능을 활용하려면 클래식 배포 모델에서 기존 배포를 마이그레이션할 수 있습니다. Resource Manager를 사용하면 더 강력한 RBAC(액세스 제어), 더 나은 감사, ARM 기반 배포 및 거버넌스, 관리 ID에 대한 액세스, 비밀용 키 자격 증명 모음에 대한 액세스, Azure AD 기반 인증, 더 쉬운 보안 관리를 위한 태그 및 리소스 그룹 지원과 같은 보안 향상 기능을 사용할 수 있습니다. 자세한 정보(관련 정책: 스토리지 계정을 새 Azure Resource Manager 리소스로 마이그레이션해야 합니다).

심각도: 낮음

스토리지 계정은 공유 키 액세스를 차단해야 함

설명: 스토리지 계정에 대한 요청을 승인하기 위한 Azure AD(Azure Active Directory)의 감사 요구 사항입니다. 기본적으로 요청은 Azure Active Directory 자격 증명을 사용하거나 공유 키 권한 부여를 위한 계정 액세스 키를 사용하여 권한을 부여할 수 있습니다. 이러한 두 가지 유형의 권한 부여 중 Azure AD는 공유 키보다 뛰어난 보안과 사용 편의성을 제공하며 Microsoft에서 권장합니다. (관련 정책: 정책)

심각도: 보통

스토리지 계정은 가상 네트워크 규칙을 사용하여 네트워크 액세스를 제한해야 함

설명: IP 기반 필터링 대신 가상 네트워크 규칙을 기본 설정 방법으로 사용하여 잠재적 위협으로부터 스토리지 계정을 보호합니다. IP 기반 필터링을 사용하지 않도록 설정하면 공용 IP에서 스토리지 계정에 액세스할 수 없습니다. (관련 정책: 스토리지 계정은 가상 네트워크 규칙을 사용하여 네트워크 액세스를 제한해야 합니다).

심각도: 보통

구독에 보안 문제에 대한 연락처 이메일 주소가 있어야 함

설명: 구독 중 하나에서 보안 위반이 발생할 수 있는 경우 조직의 관련 사용자에게 알림을 받으려면 보안 연락처를 설정하여 클라우드용 Defender 메일 알림 받습니다. (관련 정책: 구독에는 보안 문제에 대한 연락처 전자 메일 주소가 있어야 합니다.

심각도: 낮음

SQL 데이터베이스에 투명한 데이터 암호화를 사용하도록 설정해야 합니다.

설명: 투명한 데이터 암호화를 사용하도록 설정하여 미사용 데이터를 보호하고 규정 준수 요구 사항을 충족합니다(관련 정책: SQL 데이터베이스의 투명한 데이터 암호화 사용하도록 설정해야 함).

심각도: 낮음

설명: 가상 네트워크가 구성되지 않은 VM Image Builder 템플릿을 감사합니다. 가상 네트워크가 구성되지 않은 경우 공용 IP가 만들어지고 대신 사용되므로 리소스를 인터넷에 직접 노출하고 잠재적인 공격 노출 영역을 늘릴 수 있습니다. (관련 정책: VM Image Builder 템플릿은 프라이빗 링크를 사용해야 합니다).

심각도: 보통

Application Gateway에 WAF(웹 애플리케이션 방화벽)를 사용하도록 설정해야 함

설명: 들어오는 트래픽에 대한 추가 검사를 위해 공용 웹 애플리케이션 앞에 Azure WAF(웹 애플리케이션 방화벽)를 배포합니다. WAF(웹 애플리케이션 방화벽)는 SQL 삽입, 교차 사이트 스크립팅, 로컬 및 원격 파일 실행과 같은 일반적인 악용과 취약성으로부터 웹 애플리케이션을 중앙 집중식으로 보호합니다. 사용자 지정 규칙을 통해 국가/지역, IP 주소 범위 및 기타 http 매개 변수별로 웹 애플리케이션에 대한 액세스를 제한할 수도 있습니다. (관련 정책: Application Gateway에 WAF(웹 애플리케이션 방화벽)를 사용하도록 설정해야 합니다.

심각도: 낮음

Azure Front Door Service 서비스에 WAF(웹 애플리케이션 방화벽)를 사용하도록 설정해야 합니다.

설명: 들어오는 트래픽에 대한 추가 검사를 위해 공용 웹 애플리케이션 앞에 Azure WAF(웹 애플리케이션 방화벽)를 배포합니다. WAF(웹 애플리케이션 방화벽)는 SQL 삽입, 교차 사이트 스크립팅, 로컬 및 원격 파일 실행과 같은 일반적인 악용과 취약성으로부터 웹 애플리케이션을 중앙 집중식으로 보호합니다. 사용자 지정 규칙을 통해 국가/지역, IP 주소 범위 및 기타 http 매개 변수별로 웹 애플리케이션에 대한 액세스를 제한할 수도 있습니다. (관련 정책: Azure Front Door Service에 대해 WAF(Web Application Firewall)를 사용하도록 설정해야 하나요? 서비스)

심각도: 낮음

AWS 데이터 권장 사항

Amazon Aurora 클러스터에서는 역추적을 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Amazon Aurora 클러스터가 역추적을 사용하도록 설정했는지 여부를 확인합니다. 백업을 사용하면 보안 사고로부터 더 빨리 복구할 수 있습니다. 또한 백업은 시스템의 복원력을 강화합니다. Aurora 역추적은 데이터베이스를 특정 시점으로 복구하는 시간을 줄여줍니다. 이렇게 하려면 데이터베이스 복원이 필요하지 않습니다. Aurora의 역추적에 대한 자세한 내용은 Amazon Aurora 사용자 가이드의 Aurora DB 클러스터 역추적을 참조하세요.

심각도: 보통

Amazon EBS 스냅샷은 공개적으로 복원할 수 없습니다.

설명: 실수로 데이터가 노출되는 것을 방지하기 위해 명시적으로 허용되지 않는 한 Amazon EBS 스냅샷은 모든 사용자가 공개적으로 복원할 수 없습니다. 또한 Amazon EBS 구성을 변경할 수 있는 권한은 권한 있는 AWS 계정으로만 제한해야 합니다.

심각도: 높음

Amazon ECS 작업 정의에는 보안 네트워킹 모드와 사용자 정의가 있어야 합니다.

설명: 이 컨트롤은 호스트 네트워킹 모드가 있는 활성 Amazon ECS 작업 정의에도 권한이 있는지 또는 사용자 컨테이너 정의가 있는지 확인합니다. 작업 정의의 호스트 네트워크 모드 및 컨테이너 정의에서 privileged=false이거나 비어 있고 user=root이거나 비어 있으면 이 컨트롤은 검사에 불합격합니다. 작업 정의에 상승된 권한이 있는 경우 고객이 해당 구성에 특별히 옵트인했기 때문입니다. 이 컨트롤은 작업 정의에서 호스트 네트워킹을 사용하도록 설정했지만 고객이 상승된 권한을 옵트인하지 않은 경우 예기치 않은 권한 에스컬레이션을 확인합니다.

심각도: 높음

Amazon Elasticsearch Service 도메인은 노드 간에 전송되는 데이터를 암호화해야 합니다.

설명: 이 컨트롤은 Amazon ES 도메인에 노드 간 암호화가 사용하도록 설정되어 있는지 여부를 확인합니다. HTTPS(TLS)는 잠재적 공격자가 메시지 가로채기 또는 유사한 공격을 사용하여 네트워크 트래픽을 도청하거나 조작하는 것을 방지하는 데 사용할 수 있습니다. HTTPS(TLS)를 통해 암호화된 연결만 허용해야 합니다. Amazon ES 도메인의 노드 간 암호화를 사용하도록 설정하면 클러스터 내 통신이 전송 중 암호화됩니다. 이렇게 구성하면 성능 저하가 발생할 수 있습니다. 이 옵션을 사용하도록 설정하기 전에 성능 저하를 인식하고 테스트해야 합니다.

심각도: 보통

Amazon Elasticsearch Service 도메인에서 미사용 암호화를 사용할 수 있어야 합니다.

설명: Amazon ES 도메인의 나머지 암호화에서 중요한 데이터를 보호할 수 있도록 하는 것이 중요합니다.

심각도: 보통

Amazon RDS 데이터베이스는 고객 관리형 키를 사용하여 암호화해야 합니다.

설명: 이 검사는 고객 관리형 키가 아닌 기본 KMS 키로 암호화된 RDS 데이터베이스를 식별합니다. 주요 사례로 고객 관리형 키를 사용하여 RDS 데이터베이스의 데이터를 암호화하고 중요한 워크로드에서 키와 데이터를 제어합니다.

심각도: 보통

Amazon RDS 인스턴스는 자동 백업 설정으로 구성해야 합니다.

설명: 이 검사는 자동 백업 설정으로 설정되지 않은 RDS 인스턴스를 식별합니다. 자동 백업이 설정된 경우 RDS는 DB 인스턴스의 스토리지 볼륨 스냅샷을 만들어 개별 데이터베이스뿐만 아니라 전체 DB 인스턴스를 백업하여 지정 시간 복구를 제공합니다. 자동 백업은 지정된 백업 기간 동안 수행되며 보존 기간에 정의된 대로 제한된 기간 동안 백업을 유지합니다. 데이터 복원 프로세스에 도움이 되는 중요한 RDS 서버에 대한 자동 백업을 설정하는 것이 좋습니다.

심각도: 보통

Amazon Redshift 클러스터에서는 감사 로깅을 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Amazon Redshift 클러스터에 감사 로깅이 활성화되어 있는지 여부를 확인합니다. Amazon Redshift 감사 로깅은 클러스터의 연결 및 사용자 활동에 대한 추가 정보를 제공합니다. 이 데이터는 Amazon S3에 저장 및 보호할 수 있으며 보안 감사 및 조사에 유용할 수 있습니다. 자세한 내용은 Amazon Redshift 클러스터 관리 가이드Database audit logging(영문)을 참조하세요.

심각도: 보통

Amazon Redshift 클러스터에서 자동 스냅샷을 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Amazon Redshift 클러스터가 자동화된 스냅샷을 사용하도록 설정했는지 여부를 확인합니다. 또한 스냅샷 보존 기간이 7보다 크거나 같은지 확인합니다. 백업을 사용하면 보안 사고로부터 더 빨리 복구할 수 있습니다. 백업은 시스템의 복원력을 강화합니다. Amazon Redshift는 기본적으로 주기적인 스냅샷을 생성합니다. 이 컨트롤은 자동 스냅샷이 사용하도록 설정되고 그 상태가 7일 이상 유지되는지 확인합니다. Amazon Redshift 자동화 스냅샷에 대한 자세한 내용은 Amazon Redshift 클러스터 관리 가이드의 자동화된 스냅샷참조하세요.

심각도: 보통

Amazon Redshift 클러스터에서 퍼블릭 액세스를 금지해야 합니다.

설명: 클러스터 구성 항목에서 'publiclyAccessible' 필드를 평가하여 공용 접근성을 방지하려면 Amazon Redshift 클러스터를 사용하는 것이 좋습니다.

심각도: 높음

Amazon Redshift에서 주 버전의 자동 업그레이드를 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Amazon Redshift 클러스터에 대해 자동 주 버전 업그레이드를 사용할 수 있는지 여부를 확인합니다. 자동 주 버전 업그레이드를 사용하도록 설정하면 유지 관리 기간 동안 Amazon Redshift 클러스터에 대한 최신 주 버전 업데이트가 설치됩니다. 해당 업데이트에는 보안 패치 및 버그 수정이 포함될 수 있습니다. 패치 설치를 최신 상태로 유지하는 것은 시스템을 보호하는 중요한 단계입니다.

심각도: 보통

Amazon SQS 큐는 미사용 시 암호화해야 합니다.

설명: 이 컨트롤은 Amazon SQS 큐가 미사용 시 암호화되는지 여부를 확인합니다. SSE(서버 쪽 암호화)를 사용하면 암호화된 큐에서 중요한 데이터를 전송할 수 있습니다. 큐에 있는 메시지의 콘텐츠를 보호하기 위해 SSE는 AWS KMS에서 관리되는 키를 사용합니다. 자세한 내용은 Amazon Simple Queue Service 개발자 가이드의 Encryption at rest(영문)를 참조하세요.

심각도: 보통

중요한 클러스터 이벤트에 대해 RDS 이벤트 알림 구독을 구성해야 합니다.

설명: 이 컨트롤은 Amazon RDS 이벤트 구독이 있는지 여부를 확인합니다. 이 구독에는 이벤트 범주 키-값 쌍의 원본 유형에 대한 알림이 활성화되어 있습니다. DBCluster: [유지 관리 및 실패]. RDS 이벤트 알림은 Amazon SNS를 사용하여 RDS 리소스의 가용성 또는 구성이 변경되었음을 알려줍니다. 이러한 알림을 통해 신속하게 응답할 수 있습니다. RDS 이벤트 알림에 대한 자세한 내용은 Amazon RDS 사용자 가이드에서 Amazon RDS 이벤트 알림 사용을 참조하세요.

심각도: 낮음

중요한 데이터베이스 인스턴스 이벤트에 대해 RDS 이벤트 알림 구독을 구성해야 합니다.

설명: 이 컨트롤은 Amazon RDS 이벤트 구독이 원본 유형인 이벤트 범주 키-값 쌍에 대해 활성화된 알림을 사용하여 존재하는지 여부를 확인합니다. DBInstance: [유지 관리, 구성 변경 및 실패]. RDS 이벤트 알림은 Amazon SNS를 사용하여 RDS 리소스의 가용성 또는 구성이 변경되었음을 알려줍니다. 이러한 알림을 통해 신속하게 응답할 수 있습니다. RDS 이벤트 알림에 대한 자세한 내용은 Amazon RDS 사용자 가이드에서 Amazon RDS 이벤트 알림 사용을 참조하세요.

심각도: 낮음

중요한 데이터베이스 매개 변수 그룹 이벤트에 대해 RDS 이벤트 알림 구독을 구성해야 합니다.

설명: 이 컨트롤은 Amazon RDS 이벤트 구독이 원본 유형인 이벤트 범주 키-값 쌍에 대해 활성화된 알림을 사용하여 존재하는지 여부를 확인합니다. DBParameterGroup: ["configuration","change"]. RDS 이벤트 알림은 Amazon SNS를 사용하여 RDS 리소스의 가용성 또는 구성이 변경되었음을 알려줍니다. 이러한 알림을 통해 신속하게 응답할 수 있습니다. RDS 이벤트 알림에 대한 자세한 내용은 Amazon RDS 사용자 가이드에서 Amazon RDS 이벤트 알림 사용을 참조하세요.

심각도: 낮음

중요한 데이터베이스 보안 그룹 이벤트에 대해 RDS 이벤트 알림 구독을 구성해야 합니다.

설명: 이 컨트롤은 Amazon RDS 이벤트 구독이 원본 유형인 이벤트 범주 키-값 쌍에 대해 활성화된 알림을 사용하여 존재하는지 여부를 확인합니다. DBSecurityGroup: [구성, 변경, 실패]. RDS 이벤트 알림은 Amazon SNS를 사용하여 RDS 리소스의 가용성 또는 구성이 변경되었음을 알려줍니다. 이러한 알림을 통해 신속하게 응답할 수 있습니다. RDS 이벤트 알림에 대한 자세한 내용은 Amazon RDS 사용자 가이드에서 Amazon RDS 이벤트 알림 사용을 참조하세요.

심각도: 낮음

API 게이트웨이 REST 및 WebSocket API 로깅을 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Amazon API 게이트웨이 REST 또는 WebSocket API의 모든 단계에서 로깅을 사용할 수 있는지 여부를 확인합니다. 단계의 모든 메서드에 대해 로깅을 사용하도록 설정하지 않거나 로깅 수준이 ERROR 또는 INFO가 아닌 경우 컨트롤이 실패합니다. API Gateway REST 또는 WebSocket API 단계는 관련 로그를 사용하도록 설정해야 합니다. API Gateway REST 및 WebSocket API 실행 기록은 API Gateway REST 및 WebSocket API 단계에 대한 자세한 요청 기록을 제공합니다. 이 단계에는 API 통합 백엔드 응답, 람다 인증자 응답 및 AWS 통합 엔드포인트의 requestId가 포함됩니다.

심각도: 보통

API 게이트웨이 REST API 캐시 데이터는 미사용 시 암호화되어야 합니다.

설명: 이 컨트롤은 캐시를 사용하도록 설정된 API 게이트웨이 REST API 단계의 모든 메서드가 암호화되었는지 여부를 확인합니다. API 게이트웨이 REST API 단계의 메서드가 캐시하도록 구성되고 캐시가 암호화되지 않은 경우 컨트롤이 실패합니다. 미사용 데이터를 암호화하면 AWS에 인증되지 않은 사용자가 디스크에 저장된 데이터에 액세스할 위험이 줄어듭니다. 권한 없는 사용자의 데이터 액세스를 제한하는 또 다른 액세스 제어 세트가 추가됩니다. 예를 들어 암호화된 데이터를 읽으려면 먼저 암호를 해독할 API 권한이 필요합니다. 보안 계층을 추가하려면 API 게이트웨이 REST API 캐시가 미사용 상태로 암호화되어야 합니다.

심각도: 보통

API 게이트웨이 REST API 단계는 백엔드 인증에 SSL 인증서를 사용하도록 구성되어야 합니다.

설명: 이 컨트롤은 Amazon API Gateway REST API 단계에 SSL 인증서가 구성되어 있는지 여부를 확인합니다. 백엔드 시스템은 이러한 인증서를 사용하여 수신 요청이 API 게이트웨이에서 오는 것임을 인증합니다. API 게이트웨이 REST API 단계는 백엔드 시스템이 API 게이트웨이에서 시작된 요청을 인증할 수 있도록 SSL 인증서로 구성해야 합니다.

심각도: 보통

API 게이트웨이 REST API 단계에서는 AWS X-Ray 추적을 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Amazon API 게이트웨이 REST API 단계에서 AWS X-Ray 활성 추적을 사용할 수 있는지 여부를 확인합니다. X-Ray 활성 추적을 사용하면 기본 인프라의 성능 변화에 보다 신속하게 응답할 수 있습니다. 성능이 변경되면 API의 가용성이 부족할 수 있습니다. X-Ray 활성 추적은 API 게이트웨이 REST API 작업 및 연결된 서비스를 통해 흐르는 사용자 요청의 실시간 메트릭을 제공합니다.

심각도: 낮음

API 게이트웨이는 AWS WAF 웹 ACL과 연결되어야 합니다.

설명: 이 컨트롤은 API 게이트웨이 단계에서 AWS WAF ACL(웹 액세스 제어 목록)을 사용하는지 여부를 확인합니다. AWS WAF 웹 ACL이 REST API 게이트웨이 단계에 연결되지 않은 경우 이 컨트롤이 실패합니다. AWS WAF는 웹 애플리케이션과 API를 공격으로부터 보호하는 웹 애플리케이션 방화벽입니다. 이를 통해 사용자 지정이 가능한 웹 보안 규칙 및 조건을 기반으로 웹 요청을 허용, 차단 또는 계산하는 규칙 세트인 ACL을 구성할 수 있습니다. API 게이트웨이 단계가 AWS WAF 웹 ACL과 연결되어 있는지 확인하여 악의적인 공격으로부터 보호하세요.

심각도: 보통

애플리케이션 및 클래식 Load Balancer 로깅을 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 애플리케이션 부하 분산 장치와 클래식 Load Balancer에서 로깅을 사용하도록 설정했는지 여부를 확인합니다. false이면 access_logs.s3.enabled 컨트롤이 실패합니다. 탄력적 부하 분산은 부하 분산 장치에 전송된 요청에 관한 자세한 정보를 캡처하는 액세스 로그를 제공합니다. 각 로그에는 요청을 받은 시간, 클라이언트 IP 주소, 대기 시간, 요청 경로 및 서버 응답과 같은 정보가 포함됩니다. 액세스 로그를 사용하여 트래픽 패턴을 분석하고 문제를 해결할 수 있습니다. 자세한 내용은 클래식 Load Balancer 사용자 가이드의 Access logs for your Classic Load Balancer(영문)를 참조하세요.

심각도: 보통

연결된 EBS 볼륨은 미사용 암호화해야 합니다.

설명: 이 컨트롤은 연결된 상태에 있는 EBS 볼륨이 암호화되었는지 여부를 확인합니다. 이 확인을 통과하려면 EBS 볼륨이 사용 중이고 암호화되어야 합니다. EBS 볼륨이 연결되지 않은 경우 이 검사의 적용을 받지 않습니다. EBS 볼륨에 있는 중요한 데이터의 보안을 강화하려면 EBS 미사용 암호화를 사용하도록 설정해야 합니다. Amazon EBS 암호화는 자체 키 관리 인프라를 빌드, 유지 관리, 보호할 필요가 없는 EBS 리소스를 위한 간단한 암호화 솔루션을 제공합니다. 이 암호화는 암호화된 볼륨 및 스냅샷을 만들 때 AWS KMS CMK(고객 마스터 키)를 사용합니다. Amazon EBS 암호화에 대한 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용자 가이드의 Amazon EBS encryption(영문)을 참조하세요.

심각도: 보통

AWS Database Migration Service 복제 인스턴스는 공용이 되어서는 안 됩니다.

설명: 복제된 인스턴스를 위협으로부터 보호합니다. 프라이빗 복제 인스턴스에는 복제 네트워크 외부에서 액세스할 수 없는 개인 IP 주소가 있어야 합니다. 원본 데이터베이스와 대상 데이터베이스가 동일한 네트워크에 있고 네트워크가 VPN, AWS Direct Connect 또는 VPC 피어링을 사용하여 복제 인스턴스의 VPC에 연결된 경우 복제 인스턴스는 개인 IP 주소를 사용해야 합니다. 또한 권한 있는 사용자만 AWS DMS 인스턴스 구성에 액세스할 수 있도록 제한해야 합니다. 이렇게 하려면 사용자의 IAM 권한을 제한하여 AWS DMS 설정 및 리소스를 수정합니다.

심각도: 높음

클래식 부하 분산 장치 수신기는 HTTPS 또는 TLS 종료로 구성해야 합니다.

설명: 이 컨트롤은 클래식 Load Balancer 수신기가 프런트 엔드(클라이언트에서 부하 분산 장치로) 연결을 위해 HTTPS 또는 TLS 프로토콜로 구성되었는지 여부를 확인합니다. 클래식 부하 분산 장치에 수신기가 있는 경우 이 컨트롤을 적용할 수 있습니다. 클래식 Load Balancer에 수신기가 구성되지 않은 경우 컨트롤은 결과를 보고하지 않습니다. 클래식 부하 분산 장치 수신기가 프런트 엔드 연결을 위해 TLS 또는 HTTPS로 구성되어 있는 경우 이 컨트롤은 합격입니다. 수신기가 프런트 엔드 연결에 대해 TLS 또는 HTTPS로 구성되지 않은 경우 컨트롤이 실패합니다. 부하 분산 장치를 사용하려면 먼저 하나 이상의 수신기를 추가해야 합니다. 수신기는 구성된 프로토콜과 포트를 사용하여 연결 요청을 확인하는 프로세스입니다. 수신기는 HTTP 및 HTTPS/TLS 프로토콜을 모두 지원할 수 있습니다. 부하 분산 장치가 전송 중 암호화 및 암호 해독 작업을 수행하도록 항상 HTTPS 또는 TLS 수신기를 사용해야 합니다.

심각도: 보통

클래식 Load Balancer에서는 연결 드레이닝을 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 클래식 Load Balancer에 연결 드레이닝이 활성화되어 있는지 여부를 확인합니다. 클래식 Load Balancer에서 연결 드레이닝 사용은 부하 분산 장치가 등록 취소 또는 비정상 인스턴스에 대한 요청 전송을 중지하도록 합니다. 그러면 기존 연결이 열린 상태로 유지됩니다. 이는 자동 크기 조정 그룹의 인스턴스에서 연결이 갑자기 끊어지지 않도록 하는 데 유용합니다.

심각도: 보통

CloudFront 배포에서는 AWS WAF를 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 CloudFront 배포가 AWS WAF 또는 AWS WAFv2 웹 ACL과 연결되어 있는지 여부를 확인합니다. 배포가 웹 ACL과 연결되지 않은 경우 컨트롤이 실패합니다. AWS WAF는 웹 애플리케이션과 API를 공격으로부터 보호하는 웹 애플리케이션 방화벽입니다. 사용자가 정의한 사용자 지정 가능한 웹 보안 규칙 및 조건에 따라 웹 요청을 허용, 차단 또는 계산하는 웹 ACL(웹 액세스 제어 목록)이라는 규칙 세트를 구성할 수 있습니다. 악의적인 공격으로부터 보호할 수 있도록 CloudFront 배포판을 AWS WAF 웹 ACL과 연결하세요.

심각도: 보통

CloudFront 배포에서는 로깅을 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 CloudFront 배포에서 서버 액세스 로깅을 사용할 수 있는지 여부를 확인합니다. 배포에 액세스 로깅을 사용하도록 설정하지 않으면 컨트롤이 실패합니다. CloudFront 액세스 로그는 CloudFront에서 수신하는 모든 사용자 요청에 대한 자세한 정보를 제공합니다. 각 로그에는 요청을 받은 날짜 및 시간, 요청한 뷰어의 IP 주소, 요청 원본 및 뷰어의 요청 포트 번호와 같은 정보가 포함됩니다. 이러한 로그는 보안 및 액세스 감사와 포렌식 조사와 같은 애플리케이션에 유용합니다. 액세스 로그를 분석하는 방법에 대한 자세한 내용은 Amazon Athena 사용자 가이드에서 Amazon CloudFront 로그 쿼리를 참조하세요.

심각도: 보통

CloudFront 배포에서는 전송 중 암호화를 요구해야 합니다.

설명: 이 컨트롤은 Amazon CloudFront 배포에서 뷰어에서 HTTPS를 직접 사용해야 하는지 또는 리디렉션을 사용하는지 여부를 확인합니다. ViewerProtocolPolicy가 defaultCacheBehavior 또는 cacheBehaviors에 대해 allow-all로 설정된 경우 이 컨트롤은 검사에 불합격합니다. HTTPS(TLS)는 잠재적 공격자가 메시지 가로채기 또는 유사한 공격을 사용하여 네트워크 트래픽을 도청하거나 조작하는 것을 방지하는 데 사용할 수 있습니다. HTTPS(TLS)를 통해 암호화된 연결만 허용해야 합니다. 전송 중 데이터 암호화는 성능에 영향을 줄 수 있습니다. 성능 프로필 및 TLS의 영향을 이해하려면 이 기능을 사용하여 애플리케이션을 테스트해야 합니다.

심각도: 보통

미사용 시 CloudTrail 로그를 KMS CMK로 암호화해야 합니다.

설명: SSE-KMS를 사용하도록 CloudTrail을 구성하는 것이 좋습니다. SSE-KMS를 사용하도록 CloudTrail을 구성하면 지정된 사용자에게 해당 로그 버킷에 대한 S3 읽기 권한이 있어야 하며 CMK 정책에 의해 암호 해독 권한이 부여되어야 하며 로그 데이터에 대한 더 많은 기밀성 제어가 제공됩니다.

심각도: 보통

Amazon Redshift 클러스터에 대한 연결은 전송 중 암호화해야 합니다.

설명: 이 컨트롤은 전송 중에 암호화를 사용하는 데 Amazon Redshift 클러스터에 대한 연결이 필요한지 여부를 확인합니다. Amazon Redshift 클러스터 매개 변수 require_SSL 1설정되지 않은 경우 검사가 실패합니다. TLS는 잠재적 공격자가 메시지 가로채기 또는 유사한 공격을 사용하여 네트워크 트래픽을 도청하거나 조작하는 것을 방지하는 데 사용할 수 있습니다. TLS를 통해 암호화된 연결만 허용해야 합니다. 전송 중 데이터 암호화는 성능에 영향을 줄 수 있습니다. 성능 프로필 및 TLS의 영향을 이해하려면 이 기능을 사용하여 애플리케이션을 테스트해야 합니다.

심각도: 보통

TLS 1.2를 사용하여 Elasticsearch 도메인에 대한 연결을 암호화해야 합니다.

설명: 이 컨트롤은 TLS 1.2를 사용하는 데 Elasticsearch 도메인에 대한 연결이 필요한지 여부를 확인합니다. Elasticsearch 도메인 TLSSecurityPolicy가 Policy-Min-TLS-1-2-2019-07이 아닌 경우 검사가 실패합니다. HTTPS(TLS)는 잠재적 공격자가 메시지 가로채기 또는 유사한 공격을 사용하여 네트워크 트래픽을 도청하거나 조작하는 것을 방지하는 데 사용할 수 있습니다. HTTPS(TLS)를 통해 암호화된 연결만 허용해야 합니다. 전송 중 데이터 암호화는 성능에 영향을 줄 수 있습니다. 성능 프로필 및 TLS의 영향을 이해하려면 이 기능을 사용하여 애플리케이션을 테스트해야 합니다. TLS 1.2는 이전 버전의 TLS에 비해 향상된 여러 가지 보안 기능을 제공합니다.

심각도: 보통

DynamoDB 테이블에서는 지정 시간 복구를 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Amazon DynamoDB 테이블에 PITR(지정 시간 복구)이 사용되는지 여부를 확인합니다. 백업을 사용하면 보안 사고로부터 더 빨리 복구할 수 있습니다. 또한 백업은 시스템의 복원력을 강화합니다. DynamoDB 지정 시간 복구는 DynamoDB 테이블의 백업을 자동화합니다. 실수로 인한 삭제 또는 쓰기 작업에서 복구하는 시간을 단축합니다. PITR이 사용되는 DynamoDB 테이블은 지난 35일 내 특정 시점으로 복원할 수 있습니다.

심각도: 보통

EBS 기본 암호화를 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Amazon EBS(Amazon Elastic Block Store)에 대해 계정 수준 암호화가 기본적으로 사용하도록 설정되어 있는지 여부를 확인합니다. 계정 수준 암호화를 사용하도록 설정하지 않으면 컨트롤이 실패합니다. 계정에 암호화가 사용되는 경우 Amazon EBS 볼륨 및 스냅샷 복사본이 미사용 암호화됩니다. 이렇게 하면 데이터에 대한 또 다른 보호 계층이 추가됩니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용자 가이드의 Encryption by default(영문)를 참조하세요.

암호화를 지원하지 않는 인스턴스 유형은 R1, C1 및 M1입니다.

심각도: 보통

Elastic Beanstalk 환경에서는 향상된 상태 보고를 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 AWS Elastic Beanstalk 환경에서 향상된 상태 보고를 사용할 수 있는지 여부를 확인합니다. Elastic Beanstalk 향상된 상태 보고를 통해 기본 인프라의 상태 변경에 보다 신속하게 응답할 수 있습니다. 이러한 변경으로 인해 애플리케이션의 가용성이 부족해질 수 있습니다. Elastic Beanstalk 향상된 상태 보고는 식별된 문제의 심각도를 측정하고 조사할 수 있는 원인을 파악하는 상태 설명자를 제공합니다. 지원되는 AMI(Amazon Machine Images)에 포함된 Elastic Beanstalk 상태 에이전트는 환경 EC2 인스턴스의 로그 및 메트릭을 평가합니다.

심각도: 낮음

Elastic Beanstalk 관리형 플랫폼 업데이트를 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Elastic Beanstalk 환경에서 관리되는 플랫폼 업데이트를 사용할 수 있는지 여부를 확인합니다. 관리형 플랫폼 업데이트를 사용하도록 설정하면 환경에 사용 가능한 최신 플랫폼 수정 사항, 업데이트 및 기능이 설치됩니다. 패치 설치를 최신 상태로 유지하는 것은 시스템을 보호하는 중요한 단계입니다.

심각도: 높음

탄력적 Load Balancer는 90일 이내에 ACM 인증서가 만료되거나 만료되지 않아야 합니다.

설명: 이 검사는 ACM 인증서가 만료되었거나 90일 후에 만료되는 ELB(탄력적 부하 분산 장치)를 식별합니다. ACM(AWS 인증서 관리자)은 서버 인증서를 프로비전, 관리 및 배포하는 데 선호되는 도구입니다. ACM을 사용합니다. 인증서를 요청하거나 기존 ACM 또는 외부 인증서를 AWS 리소스에 배포할 수 있습니다. 원본 인증서의 ELB 연결을 유지하면서 만료/만료된 인증서를 다시 가져오는 것이 좋습니다.

심각도: 높음

CloudWatch 로그에 Elasticsearch 도메인 오류 로깅을 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Elasticsearch 도메인이 CloudWatch 로그에 오류 로그를 보내도록 구성되어 있는지 여부를 확인합니다. Elasticsearch 도메인에 오류 로그를 사용하도록 설정하고 보존 및 응답을 위해 해당 로그를 CloudWatch Logs로 보내야 합니다. 도메인 오류 로그는 보안 및 액세스 감사를 지원하고 가용성 문제를 진단하는 데 도움이 될 수 있습니다.

심각도: 보통

Elasticsearch 도메인은 3개 이상의 전용 마스터 노드로 구성되어야 합니다.

설명: 이 컨트롤은 Elasticsearch 도메인이 세 개 이상의 전용 마스터 노드로 구성되어 있는지 여부를 확인합니다. 도메인에서 전용 마스터 노드를 사용하지 않는 경우 이 컨트롤이 실패합니다. Elasticsearch 도메인에 5개의 전용 마스터 노드가 있으면 이 컨트롤은 합격입니다. 그러나 3개 이상의 마스터 노드를 사용하면 가용성 위험을 완화할 필요가 없으며 더 많은 비용이 발생합니다. Elasticsearch 도메인에는 고가용성 및 내결함성을 위해 3개 이상의 전용 마스터 노드가 필요합니다. 관리해야 할 노드가 더 많기 때문에 데이터 노드를 파란색/녹색으로 배포하는 동안 전용 마스터 노드 리소스가 부담을 줄 수 있습니다. 최소 3개의 전용 마스터 노드가 있는 Elasticsearch 도메인을 배포하면 노드가 실패하더라도 충분한 마스터 노드 리소스 용량과 클러스터 작업이 보장됩니다.

심각도: 보통

Elasticsearch 도메인에는 최소 3개의 데이터 노드가 있어야 합니다.

설명: 이 컨트롤은 Elasticsearch 도메인이 3개 이상의 데이터 노드로 구성되고 zoneAwarenessEnabled가 true인지 여부를 확인합니다. Elasticsearch 도메인에는 고가용성 및 내결함성을 위해 3개 이상의 데이터 노드가 필요합니다. 데이터 노드가 3개 이상 있는 Elasticsearch 도메인을 배포하면 노드가 실패하더라도 클러스터가 작동합니다.

심각도: 보통

Elasticsearch 도메인에서는 감사 로깅을 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Elasticsearch 도메인에 감사 로깅을 사용할 수 있는지 여부를 확인합니다. Elasticsearch 도메인에 감사 로깅을 사용하도록 설정하지 않은 경우 이 컨트롤이 실패합니다. 감사 로그는 유연하게 사용자 지정할 수 있습니다. 인증 성공 및 실패, OpenSearch 요청, 인덱스 변경 및 들어오는 검색 쿼리를 포함하여 Elasticsearch 클러스터에서 사용자 작업을 추적할 수 있습니다.

심각도: 보통

RDS DB 인스턴스 및 클러스터에서 향상된 모니터링을 구성해야 합니다.

설명: 이 컨트롤은 RDS DB 인스턴스에 대해 향상된 모니터링을 사용할 수 있는지 여부를 확인합니다. Amazon RDS에서 향상된 모니터링을 사용하면 기본 인프라의 성능 변화에 보다 신속하게 대응할 수 있습니다. 성능 변화로 인해 데이터의 가용성이 부족해질 수 있습니다. 향상된 모니터링은 RDS DB 인스턴스가 실행되는 운영 체제의 실시간 메트릭을 제공합니다. 에이전트는 인스턴스에 설치됩니다. 에이전트는 하이퍼바이저 계층에서 가능한 정확도보다 더 정확하게 메트릭을 얻을 수 있습니다. 향상된 모니터링 메트릭은 DB 인스턴스의 다양한 프로세스 또는 스레드가 CPU를 사용하는 방법을 확인하려는 경우에 유용합니다. 자세한 내용은 Amazon RDS 사용자 가이드Enhanced Monitoring(영문)을 참조하세요.

심각도: 낮음

고객 생성 CMK에 대해 회전을 사용해야 합니다.

설명: AWS 키 관리 서비스(KMS)를 사용하면 고객이 CMK(고객 생성 고객 마스터 키)의 키 ID에 연결된 KMS 내에 저장된 키 자료인 지원 키를 회전할 수 있습니다. 암호화 및 암호 해독과 같은 암호화 작업을 수행하는 데 사용되는 지원 키입니다. 자동화된 키 회전은 암호화된 데이터의 암호 해독이 투명하게 수행될 수 있도록 현재 모든 이전 지원 키를 보유하고 있습니다. CMK 키 회전을 사용하도록 설정하는 것이 좋습니다. 암호화 키를 회전하면 새 키로 암호화된 데이터에 노출되었을 수 있는 이전 키로 액세스할 수 없으므로 손상된 키의 잠재적 영향을 줄일 수 있습니다.

심각도: 보통

CloudTrail S3 버킷에서 S3 버킷 액세스 로깅을 사용해야 합니다.

설명: S3 버킷 액세스 로깅은 액세스 레코드가 포함된 로그를 생성하여 S3 버킷에 대한 각 요청에 대해 CloudTrail S3 버킷에서 S3 버킷 액세스 로깅을 사용하도록 설정했는지 확인합니다. 액세스 로그 레코드에는 요청 유형, 요청에 지정된 리소스 작업, 요청이 처리된 시간 및 날짜와 같은 요청에 대한 세부 정보가 포함됩니다. CloudTrail S3 버킷에서 버킷 액세스 로깅을 사용하도록 설정하는 것이 좋습니다. 대상 S3 버킷에서 S3 버킷 로깅을 사용하도록 설정하면 대상 버킷 내의 개체에 영향을 줄 수 있는 모든 이벤트를 캡처할 수 있습니다. 로그를 별도의 버킷에 배치하도록 구성하면 로그 정보에 액세스할 수 있으므로 보안 및 인시던트 대응 워크플로에 유용할 수 있습니다.

심각도: 낮음

CloudTrail 로그를 저장하는 데 사용되는 S3 버킷이 공개적으로 액세스할 수 없는지 확인합니다.

설명: CloudTrail은 AWS 계정에서 수행된 모든 API 호출의 레코드를 기록합니다. 이러한 로그 파일은 S3 버킷에 저장됩니다. CloudTrail 로그에 대한 공용 액세스를 방지하기 위해 CloudTrail에서 기록하는 S3 버킷에 버킷 정책 또는 ACL(액세스 제어 목록)을 적용하는 것이 좋습니다. CloudTrail 로그 콘텐츠에 대한 공용 액세스를 허용하면 악의적 사용자가 영향을 받는 계정의 사용 또는 구성에서 약점을 식별하는 데 도움이 될 수 있습니다.

심각도: 높음

IAM에 만료된 SSL/TLS 인증서가 없어야 합니다.

설명: 이 검사는 만료된 SSL/TLS 인증서를 식별합니다. AWS에서 웹 사이트 또는 애플리케이션에 대한 HTTPS 연결을 사용하도록 설정하려면 SSL/TLS 서버 인증서가 필요합니다. ACM 또는 IAM을 사용하여 서버 인증서를 저장하고 배포할 수 있습니다. 만료된 SSL/TLS 인증서를 제거하면 잘못된 인증서가 ELB(AWS Elastic Load Balancer)와 같은 리소스에 실수로 배포되어 ELB 뒤에 있는 애플리케이션/웹 사이트의 신뢰성을 손상시킬 위험이 없습니다. 이 검사는 AWS IAM에 저장된 만료된 SSL/TLS 인증서가 있는 경우 경고를 생성합니다. 가장 좋은 방법은 만료된 인증서를 삭제하는 것이 좋습니다.

심각도: 높음

가져온 ACM 인증서는 지정된 기간 후에 갱신해야 합니다.

설명: 이 컨트롤은 계정의 ACM 인증서가 30일 이내에 만료되도록 표시되었는지 여부를 확인합니다. 이 컨트롤은 가져온 인증서와 AWS Certificate Manager에서 제공하는 인증서를 모두 확인합니다. ACM은 DNS 유효성 검사를 사용하는 인증서를 자동으로 갱신할 수 있습니다. 이메일 유효성 검사를 사용하는 인증서의 경우 도메인 유효성 검사 이메일에 응답해야 합니다. 또한 ACM은 가져오는 인증서를 자동으로 갱신하지 않습니다. 사용자는 가져온 인증서를 수동으로 갱신해야 합니다. ACM 인증서의 관리형 갱신에 대한 자세한 내용은 AWS Certificate Manager 사용자 가이드의 Managed renewal for ACM certificates(영문)를 참조하세요.

심각도: 보통

계정에서 과도하게 프로비전된 ID를 조사하여 PCI(권한 크리프 인덱스)를 줄여야 합니다.

설명: PCI(권한 크리프 인덱스)를 줄이고 인프라를 보호하기 위해 계정에서 과도하게 프로비전된 ID를 조사해야 합니다. 사용되지 않는 위험 수준이 높은 권한 할당을 제거하여 PCI를 줄입니다. 높은 PCI는 정상 또는 필요한 사용량을 초과하는 권한이 있는 ID와 관련된 위험을 반영합니다.

심각도: 보통

RDS 자동 부 버전 업그레이드를 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 RDS 데이터베이스 인스턴스에 대해 자동 부 버전 업그레이드를 사용할 수 있는지 여부를 확인합니다. 자동 부 버전 업그레이드를 사용하도록 설정하면 RDBMS(관계형 데이터베이스 관리 시스템)에 대한 최신 부 버전 업데이트가 설치됩니다. 이러한 업그레이드에는 보안 패치 및 버그 수정이 포함될 수 있습니다. 패치 설치를 최신 상태로 유지하는 것은 시스템을 보호하는 중요한 단계입니다.

심각도: 높음

RDS 클러스터 스냅샷과 데이터베이스 스냅샷은 미사용 암호화해야 합니다.

설명: 이 컨트롤은 RDS DB 스냅샷이 암호화되었는지 여부를 확인합니다. 이 컨트롤은 RDS DB 인스턴스에 사용됩니다. 그러나 Aurora DB 인스턴스, Neptune DB 인스턴스 및 Amazon DocumentDB 클러스터의 스냅샷에 대한 결과를 생성할 수도 있습니다. 이러한 결과가 유용하지 않은 경우 이를 표시하지 않을 수 있습니다. 미사용 데이터를 암호화하면 인증되지 않은 사용자가 디스크에 저장된 데이터에 액세스할 수 있는 위험이 감소합니다. 보안 계층을 추가하려면 RDS 스냅샷의 데이터는 미사용 시 암호화되어야 합니다.

심각도: 보통

RDS 클러스터에서는 삭제 방지를 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 RDS 클러스터에 삭제 보호가 사용하도록 설정되어 있는지 여부를 확인합니다. 이 컨트롤은 RDS DB 인스턴스에 사용됩니다. 그러나 Aurora DB 인스턴스, Neptune DB 인스턴스 및 Amazon DocumentDB 클러스터에 대한 결과를 생성할 수도 있습니다. 이러한 결과가 유용하지 않은 경우 이를 표시하지 않을 수 있습니다. 클러스터 삭제 보호를 사용하도록 설정하는 것은 권한이 없는 엔터티에 의한 실수로 인한 데이터베이스 삭제 또는 삭제에 대한 또 다른 보호 계층입니다. 삭제 보호를 사용하도록 설정하면 RDS 클러스터를 삭제할 수 없습니다. 삭제 요청이 성공하려면 먼저 삭제 방지를 비활성화해야 합니다.

심각도: 낮음

복수의 가용성 영역에 대해 RDS DB 클러스터를 구성해야 합니다.

설명: 저장된 여러 데이터에 대해 RDS DB 클러스터를 구성해야 합니다. 여러 가용 영역에 배포하면 가용성 영역을 자동화하여 가용성 영역에 문제가 발생하거나 정기적인 RDS 유지 관리 중에 장애 조치(failover)의 가용성을 보장할 수 있습니다.

심각도: 보통

스냅샷에 태그를 복사하도록 RDS DB 클러스터를 구성해야 합니다.

설명: IT 자산의 식별 및 인벤토리는 거버넌스 및 보안의 중요한 측면입니다. 모든 RDS DB 클러스터에 대한 가시성을 확보해야 합니다. 그래야만 클러스터의 보안 태세를 평가하고 잠재적인 취약 영역에 대한 조치를 취할 수 있습니다. 스냅샷은 상위 RDS 데이터베이스 클러스터와 동일한 방식으로 태그를 지정해야 합니다. 이 설정을 사용하도록 설정하면 스냅샷이 상위 데이터베이스 클러스터의 태그를 상속합니다.

심각도: 낮음

스냅샷에 태그를 복사하도록 RDS DB 인스턴스를 구성해야 합니다.

설명: 이 컨트롤은 스냅샷을 만들 때 RDS DB 인스턴스가 모든 태그를 스냅샷에 복사하도록 구성되었는지 여부를 확인합니다. IT 자산의 식별 및 인벤토리는 거버넌스 및 보안의 중요한 측면입니다. 모든 RDS DB 인스턴스에 대한 가시성을 확보해야 합니다. 그래야만 인스턴스의 보안 태세를 평가하고 잠재적인 취약 영역에 대한 조치를 취할 수 있습니다. 스냅샷은 상위 RDS 데이터베이스 인스턴스와 동일한 방식으로 태그를 지정해야 합니다. 이 설정을 사용하도록 설정하면 스냅샷이 상위 데이터베이스 인스턴스의 태그를 상속합니다.

심각도: 낮음

RDS DB 인스턴스는 여러 가용성 영역을 사용해서 구성해야 합니다.

설명: 이 컨트롤은 RDS DB 인스턴스에 대해 고가용성을 사용할 수 있는지 여부를 확인합니다. RDS DB 인스턴스는 다중 AZ(가용성 영역)로 구성해야 합니다. 이렇게 하면 저장된 데이터의 가용성이 보장됩니다. 다중 AZ 배포는 가용성 영역 가용성 및 정기적인 RDS 유지 관리 중에 문제가 있는 경우 자동화된 장애 조치(failover)를 허용합니다.

심각도: 보통

RDS DB 인스턴스에서 삭제 방지를 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 나열된 데이터베이스 엔진 중 하나를 사용하는 RDS DB 인스턴스에 삭제 보호가 활성화되어 있는지 여부를 확인합니다. 인스턴스 삭제 보호를 사용하도록 설정하는 것은 권한이 없는 엔터티에 의한 실수로 인한 데이터베이스 삭제 또는 삭제에 대한 또 다른 보호 계층입니다. 삭제 보호를 사용하는 동안에는 RDS DB 인스턴스를 삭제할 수 없습니다. 삭제 요청이 성공하려면 먼저 삭제 방지를 비활성화해야 합니다.

심각도: 낮음

RDS DB 인스턴스에서는 미사용 암호화를 사용하도록 설정해야 합니다.

설명: 이 컨트롤은 Amazon RDS DB 인스턴스에 스토리지 암호화를 사용할 수 있는지 여부를 확인합니다. 이 컨트롤은 RDS DB 인스턴스에 사용됩니다. 그러나 Aurora DB 인스턴스, Neptune DB 인스턴스 및 Amazon DocumentDB 클러스터에 대한 결과를 생성할 수도 있습니다. 이러한 결과가 유용하지 않은 경우 이를 표시하지 않을 수 있습니다. RDS DB 인스턴스의 중요한 데이터를 보호하는 보안 레이어를 추가하려면 RDS DB 인스턴스를 미사용 암호화하도록 구성해야 합니다. 미사용 RDS DB 인스턴스 및 스냅샷을 암호화하려면 RDS DB 인스턴스의 암호화 옵션을 사용하도록 설정합니다. 미사용 암호화된 데이터에는 DB 인스턴스, 자동화된 백업, 읽기 복제본 및 스냅샷의 기본 스토리지가 포함됩니다. RDS 암호화된 DB 인스턴스는 공개 표준 AES-256 암호화 알고리즘을 사용하여 RDS DB 인스턴스를 호스트하는 서버에서 데이터를 암호화합니다. 데이터가 암호화된 후, Amazon RDS는 성능에 미치는 영향을 최소화하면서 데이터 액세스 및 암호 해독의 인증을 투명하게 처리합니다. 암호화를 사용하도록 데이터베이스 클라이언트 애플리케이션을 수정할 필요가 없습니다. Amazon RDS 암호화는 현재 모든 데이터베이스 엔진 및 스토리지 유형에 사용할 수 있습니다. Amazon RDS 암호화는 대부분의 DB 인스턴스 클래스에 사용할 수 있습니다. Amazon RDS 암호화를 지원하지 않는 DB 인스턴스 클래스에 대한 자세한 내용은 Amazon RDS 사용자 가이드에서 Amazon RDS 리소스 암호화를 참조하세요.

심각도: 보통

RDS DB 인스턴스에서 퍼블릭 액세스를 금지해야 합니다.

설명: RDS 인스턴스의 설정 및 리소스를 수정하기 위해 사용자의 IAM 권한을 제한하여 RDS 인스턴스의 구성에 대한 액세스가 권한 있는 사용자로만 제한되도록 하는 것이 좋습니다.

심각도: 높음

RDS 스냅샷에서 퍼블릭 액세스를 금지해야 합니다.

설명: 권한 있는 보안 주체만 스냅샷에 액세스하고 Amazon RDS 구성을 변경할 수 있도록 허용하는 것이 좋습니다.

심각도: 높음

사용되지 않는 Secrets Manager 비밀을 제거합니다.

설명: 이 컨트롤은 지정된 일 수 내에 비밀에 액세스했는지 여부를 확인합니다. 기본값은 90일 입니다. 정의된 일 수 내에 비밀에 액세스하지 못한 경우 이 컨트롤이 실패합니다. 사용되지 않는 비밀을 삭제하는 것은 비밀을 회전하는 것만큼 중요합니다. 사용되지 않는 비밀은 더 이상 이 비밀에 액세스할 필요가 없는 이전 사용자에 의해 남용될 수 있습니다. 또한 비밀에 액세스할 수 있는 사용자가 점점 늘어나면 누군가가 비밀을 잘못 처리하여 권한 없는 엔터티에 비밀을 유출할 가능성이 있으며, 이렇게 되면 남용 위험이 증가합니다. 사용되지 않는 비밀을 삭제하면 더 이상 비밀이 필요 없는 사용자의 비밀 액세스 권한을 취소하는 데 도움이 됩니다. 또한 Secrets Manager 사용 비용을 줄이는 데 도움이 됩니다. 따라서 사용하지 않는 비밀을 정기적으로 삭제해야 합니다.

심각도: 보통

S3 버킷이 지역 간 복제를 사용할 수 있어야 합니다.

설명: S3 지역 간 복제를 사용하도록 설정하면 여러 버전의 데이터를 서로 다른 지역에서 사용할 수 있습니다. 이렇게 하면 DDoS 공격 및 데이터 손상 이벤트로부터 S3 버킷을 보호할 수 있습니다.

심각도: 낮음

S3 버킷이 서버 쪽 암호화를 사용할 수 있어야 합니다.

설명: 서버 쪽 암호화를 사용하도록 설정하여 S3 버킷의 데이터를 보호합니다. 데이터를 암호화하면 데이터 보안 위반 발생 시 중요한 데이터에 액세스하지 못하게 막을 수 있습니다.

심각도: 보통

자동 회전이 구성된 Secrets Manager 비밀이 성공적으로 회전해야 합니다.

설명: 이 컨트롤은 AWS Secrets Manager 비밀이 회전 일정에 따라 성공적으로 회전되었는지 여부를 확인합니다. RotationOccurringAsScheduledfalse인 경우 이 컨트롤은 검사에 불합격합니다. 컨트롤은 회전이 구성되지 않은 비밀을 평가하지 않습니다. Secrets Manager는 조직의 보안 태세를 강화하는 데 도움이 됩니다. 비밀에는 데이터베이스 자격 증명, 암호, 타사 API 키가 포함됩니다. Secrets Manager를 사용하여 비밀을 중앙에 저장하고, 비밀을 자동으로 암호화하고, 비밀 액세스 권한을 제어하고, 비밀을 안전하게 자동으로 회전할 수 있습니다. Secrets Manager는 비밀을 회전할 수 있습니다. 회전을 사용하여 장기 비밀을 단기 비밀로 바꿀 수 있습니다. 비밀을 회전하면 권한 없는 사용자가 손상된 비밀을 사용할 수 있는 기간이 제한됩니다. 이러한 이유로 비밀을 자주 회전해야 합니다. 자동으로 회전되도록 비밀을 구성하는 것 외에도 회전 일정에 따라 비밀이 회전되는지 확인해야 합니다. 회전에 대한 자세한 내용은 AWS Secrets Manager 사용자 가이드의 Rotating your AWS Secrets Manager secrets(영문)를 참조하세요.

심각도: 보통

Secrets Manager 비밀은 지정된 일 수 내에 회전해야 합니다.

설명: 이 컨트롤은 비밀이 90일 이내에 한 번 이상 회전되었는지 여부를 확인합니다. 비밀을 회전하면 AWS 계정의 비밀이 무단으로 사용될 위험을 줄일 수 있습니다. 비밀의 예로는 데이터베이스 자격 증명, 암호, 타사 API 키, 임의 텍스트 등이 있습니다. 오랜 시간 동안 비밀을 변경하지 않으면 비밀이 손상될 가능성이 높습니다. 더 많은 사용자가 비밀에 액세스할 수 있게 되면 누군가가 비밀을 잘못 처리하여 권한 없는 엔터티에게 비밀을 유출될 가능성이 높아질 수 있습니다. 로그 및 캐시 데이터를 통해 비밀이 유출될 수 있습니다. 디버깅을 위해 비밀을 공유할 수 있으며, 디버깅이 완료되면 비밀을 변경하거나 취소할 수 없습니다. 이러한 이유로 비밀을 자주 회전해야 합니다. AWS Secrets Manager에서 비밀이 자동으로 회전하도록 구성할 수 있습니다. 자동 회전을 사용하면 장기 비밀을 단기 비밀로 교체하여 손상 위험을 크게 줄일 수 있습니다. 보안 허브에서는 Secrets Manager 비밀에 회전을 사용하도록 권장합니다. 회전에 대한 자세한 내용은 AWS Secrets Manager 사용자 가이드의 Rotating your AWS Secrets Manager secrets(영문)를 참조하세요.

심각도: 보통

SNS 토픽은 AWS KMS를 사용하여 미사용 암호화해야 합니다.

설명: 이 컨트롤은 AWS KMS를 사용하여 SNS 토픽이 미사용 시 암호화되는지 여부를 확인합니다. 미사용 데이터를 암호화하면 AWS에 인증되지 않은 사용자가 디스크에 저장된 데이터에 액세스할 위험이 줄어듭니다. 뿐만 아니라 권한 없는 사용자가 데이터에 액세스하는 가능성을 제한하는 또 다른 액세스 제어 세트가 추가됩니다. 예를 들어 암호화된 데이터를 읽으려면 먼저 암호를 해독할 API 권한이 필요합니다. 보안 계층을 추가하기 위해 SNS 토픽을 미사용 시 암호화해야 합니다. 자세한 내용은 Amazon Simple Notification Service 개발자 가이드의 Encryption at rest(영문)를 참조하세요.

심각도: 보통

모든 VPC에서 VPC 흐름 로깅을 사용하도록 설정해야 합니다.

설명: VPC 흐름 로그는 VPC를 통과하고 보안 이벤트 중에 비정상적인 트래픽 또는 인사이트를 검색하는 데 사용할 수 있는 네트워크 트래픽에 대한 가시성을 제공합니다.

심각도: 보통

GCP 데이터 권장 사항

Cloud SQL SQL Server 인스턴스에 대한 '3625(추적 플래그)' 데이터베이스 플래그를 '끔'으로 설정해야 함

설명: 클라우드 SQL Server 인스턴스의 "3625(추적 플래그)" 데이터베이스 플래그를 "off"로 설정하는 것이 좋습니다. 추적 플래그는 성능 문제를 진단하거나 저장 프로시저 또는 복잡한 컴퓨터 시스템을 디버그하는 데 자주 사용되지만 특정 워크로드에 부정적인 영향을 주는 동작을 해결하기 위해 Microsoft 지원 권장될 수도 있습니다. 모든 문서화된 추적 플래그와 Microsoft 추적 플래그를 지시에 따라 사용하는 경우 프로덕션 환경에서 완전히 지원됩니다. "3625(추적 로그)" '******'을 사용하여 일부 오류 메시지의 매개 변수를 마스킹하여 sysadmin 고정 서버 역할의 멤버가 아닌 사용자에게 반환되는 정보의 양을 제한합니다. 이렇게 하면 중요한 정보의 노출을 막을 수 있습니다. 따라서 이 플래그를 사용하지 않도록 설정하는 것이 좋습니다. 이 권장 사항은 SQL Server 데이터베이스 인스턴스에 적용됩니다.

심각도: 보통

Cloud SQL SQL Server 인스턴스에 대한 '외부 스크립트 사용' 데이터베이스 플래그를 '끔'으로 설정해야 함

설명: 클라우드 SQL Server 인스턴스에 대해 "외부 스크립트 사용" 데이터베이스 플래그를 해제하도록 설정하는 것이 좋습니다. "외부 스크립트 사용"은 특정 원격 언어 확장이 있는 스크립트 실행을 사용하도록 설정합니다. 이 속성은 기본적으로 해제되어 있습니다. 고급 분석 서비스가 설치되어 있으면 이 속성을 true로 설정할 수 있습니다. "외부 스크립트 사용" 기능을 사용하면 R 라이브러리에 있는 파일과 같은 SQL 외부 스크립트를 실행할 수 있으며, 이는 시스템 보안에 악영향을 미칠 수 있으므로 이 기능을 사용하지 않도록 설정해야 합니다. 이 권장 사항은 SQL Server 데이터베이스 인스턴스에 적용됩니다.

심각도: 높음

Cloud SQL SQL Server 인스턴스에 대한 '원격 액세스' 데이터베이스 플래그를 '끔'으로 설정해야 함

설명: 클라우드 SQL Server 인스턴스에 대한 "원격 액세스" 데이터베이스 플래그를 "off"로 설정하는 것이 좋습니다. "원격 액세스" 옵션은 SQL Server 인스턴스가 실행 중인 로컬 또는 원격 서버에서 저장 프로시저의 실행을 제어합니다. 이 옵션의 기본값은 1입니다. 이 기본값으로 설정하면 원격 서버 또는 로컬 서버의 원격 저장 프로시저에서 로컬 저장 프로시저를 실행할 수 있는 권한이 부여됩니다. 로컬 저장 프로시저가 원격 서버에서 실행되거나 원격 저장 프로시저가 로컬 서버에서 실행되지 않도록 하려면 이 기능을 사용하지 않도록 설정해야 합니다. 원격 액세스 옵션은 원격 서버의 로컬 저장 프로시저 또는 로컬 서버의 원격 저장 프로시저 실행을 제어합니다. '원격 액세스' 기능은 쿼리 처리를 대상으로 오프로드하여 원격 서버에서 DoS(서비스 거부) 공격을 실행하는 데 남용될 수 있으므로 이 기능을 사용하지 않도록 설정해야 합니다. 이 권장 사항은 SQL Server 데이터베이스 인스턴스에 적용됩니다.

심각도: 높음

Cloud SQL Mysql 인스턴스에 대한 'skip_show_database' 데이터베이스 플래그를 '켬'으로 설정해야 함

설명: 클라우드 SQL Mysql 인스턴스의 "skip_show_database" 데이터베이스 플래그를 "켜기"로 설정하는 것이 좋습니다. 'skip_show_database' 데이터베이스 플래그는 SHOW DATABASES 권한이 없는 경우 사용자가 SHOW DATABASES 문을 사용할 수 없도록 합니다. 사용자가 다른 사용자에게 속한 데이터베이스를 볼 수 있는 것에 대해 우려되는 경우 보안을 개선시킬 수 있습니다. 그 효과는 SHOW DATABASES 권한에 따라 다릅니다. 변수 값이 ON이면 SHOW DATABASES 문은 SHOW DATABASES 권한이 있는 사용자에게만 허용되며 문은 모든 데이터베이스 이름을 표시합니다. 값이 OFF인 경우 SHOW DATABASES는 모든 사용자에게 허용되지만 사용자가 SHOW DATABASES 또는 기타 권한을 가진 데이터베이스의 이름만 표시합니다. 이 권장 사항은 Mysql 데이터베이스 인스턴스에 적용됩니다.

심각도: 낮음

모든 BigQuery 데이터 집합에 대해 기본 CMEK(고객 관리형 암호화 키)가 지정되어야 함

설명: BigQuery는 기본적으로 Google 관리형 암호화 키를 사용하여 봉투 암호화를 사용하여 데이터를 미사용으로 암호화합니다. 데이터는 데이터 암호화 키를 사용하여 암호화되며 데이터 암호화 키 자체는 키 암호화 키를 사용하여 추가로 암호화됩니다. 이는 원활한 과정이며 사용자의 추가 입력이 필요하지 않습니다. 그러나 더 강력한 제어를 원하는 경우 CMEK(고객 관리형 암호화 키)를 BigQuery 데이터 세트의 암호화 키 관리 솔루션으로 사용할 수 있습니다. BigQuery는 기본적으로 Google 관리 암호화 키를 사용하여 봉투 암호화를 채택하여 미사용 데이터를 암호화합니다. 이는 원활하며 사용자의 추가 입력이 필요하지 않습니다. 암호화를 더 잘 제어하기 위해 CMEK(고객 관리형 암호화 키)를 BigQuery 데이터 세트의 암호화 키 관리 솔루션으로 사용할 수 있습니다. 데이터 세트에 대한 기본 CMEK(고객 관리형 암호화 키)를 설정하면 다른 테이블이 제공되지 않는 경우 향후 만들어지는 모든 테이블이 지정된 CMEK를 사용하게 됩니다.

Google은 해당 서버에 키를 저장하지 않으며 키를 제공하지 않는 한 보호된 데이터에 액세스할 수 없습니다.

즉, 키를 잊어버리거나 분실한 경우 Google에서 키를 복구하거나 손실된 키로 암호화된 데이터를 복구할 수 있는 방법이 없습니다.

심각도: 보통

모든 BigQuery 테이블을 CMEK(고객 관리형 암호화 키)로 암호화해야 함

설명: BigQuery는 기본적으로 Google 관리형 암호화 키를 사용하여 봉투 암호화를 사용하여 데이터를 미사용으로 암호화합니다. 데이터는 데이터 암호화 키를 사용하여 암호화되며 데이터 암호화 키 자체는 키 암호화 키를 사용하여 추가로 암호화됩니다. 이는 원활한 과정이며 사용자의 추가 입력이 필요하지 않습니다. 그러나 더 강력한 제어를 원하는 경우 CMEK(고객 관리형 암호화 키)를 BigQuery 데이터 세트의 암호화 키 관리 솔루션으로 사용할 수 있습니다. CMEK를 사용하는 경우 Google 관리 암호화 키를 사용하는 대신 CMEK를 사용하여 데이터 암호화 키를 암호화합니다. BigQuery는 기본적으로 Google 관리 암호화 키를 사용하여 봉투 암호화를 채택하여 미사용 데이터를 암호화합니다. 이는 원활하며 사용자의 추가 입력이 필요하지 않습니다. 암호화를 더 잘 제어하기 위해 CMEK(고객 관리형 암호화 키)를 BigQuery 테이블의 암호화 키 관리 솔루션으로 사용할 수 있습니다. CMEK는 Google 관리 암호화 키를 사용하는 대신 데이터 암호화 키를 암호화하는 데 사용됩니다. BigQuery는 테이블과 CMEK 연결을 저장하며 암호화/암호 해독은 자동으로 수행됩니다. BigQuery 데이터 세트에 기본 고객 관리형 키를 적용하면 향후 만들어지는 모든 새 테이블이 CMEK를 사용하여 암호화되지만 CMEK를 개별적으로 사용하려면 기존 테이블을 업데이트해야 합니다.

Google은 해당 서버에 키를 저장하지 않으며 키를 제공하지 않는 한 보호된 데이터에 액세스할 수 없습니다. 즉, 키를 잊어버리거나 분실한 경우 Google에서 키를 복구하거나 손실된 키로 암호화된 데이터를 복구할 수 있는 방법이 없습니다.

심각도: 보통

BigQuery 데이터 세트를 익명이나 공개적으로 액세스할 수 없어야 함

설명: BigQuery 데이터 세트의 IAM 정책은 익명 및/또는 공용 액세스를 허용하지 않는 것이 좋습니다. allUsers 또는 allAuthenticatedUsers에 권한을 부여하면 누구나 데이터 세트에 액세스할 수 있습니다. 중요한 데이터가 데이터 세트에 저장되는 경우 이러한 액세스는 바람직하지 않을 수 있습니다. 따라서 데이터 세트에 대한 익명 및/또는 공용 액세스가 허용되지 않는지 확인합니다.

심각도: 높음

자동화된 백업으로 클라우드 SQL 데이터베이스 인스턴스를 구성해야 함

설명: 자동화된 백업을 사용하도록 모든 SQL 데이터베이스 인스턴스를 설정하는 것이 좋습니다. 백업은 Cloud SQL 인스턴스를 복원하여 손실된 데이터를 복원하거나 해당 인스턴스의 문제를 복원하는 방법을 제공합니다. 손실이나 손상으로부터 보호해야 하는 데이터가 포함된 모든 인스턴스에 대해 자동 백업을 설정해야 합니다. 이 권장 사항은 SQL Server, PostgreSql, MySql 1세대 및 MySql 2세대 인스턴스에 적용됩니다.

심각도: 높음

클라우드 SQL 데이터베이스 인스턴스가 전 세계에 열려 있지 않은지 확인합니다.

설명: 데이터베이스 서버는 신뢰할 수 있는 네트워크/IP에서만 연결을 허용하고 세계로부터의 액세스를 제한해야 합니다. 데이터베이스 서버 인스턴스에서 공격 노출 영역을 최소화하려면 신뢰할 수 있고 알려진 IP와 필요한 IP만 연결하도록 승인되어야 합니다. 권한 있는 네트워크에는 IP/네트워크가 0.0.0.0/0으로 구성되어 있지 않아야 합니다. 그러면 전 세계 어디에서나 인스턴스에 액세스할 수 있습니다. 승인된 네트워크는 공용 IP가 있는 인스턴스에만 적용됩니다.

심각도: 높음

클라우드 SQL 데이터베이스 인스턴스에 퍼블릭 IP가 없어야 함

설명: 공용 IP 대신 개인 IP를 사용하도록 2세대 Sql 인스턴스를 구성하는 것이 좋습니다. 조직의 공격 노출 영역을 낮추려면 클라우드 SQL 데이터베이스에 공용 IP가 없어야 합니다. 개인 IP는 애플리케이션에 개선된 네트워크 보안과 짧은 대기 시간을 제공합니다.

심각도: 높음

클라우드 스토리지 버킷을 익명이나 공개적으로 액세스할 수 없어야 함

설명: Cloud Storage 버킷의 IAM 정책은 익명 또는 공용 액세스를 허용하지 않는 것이 좋습니다. 익명 또는 공용 액세스를 허용하면 누구나 버킷 콘텐츠에 액세스할 수 있는 권한이 부여됩니다. 중요한 데이터를 저장하는 경우 이러한 액세스가 바람직하지 않을 수 있습니다. 따라서 버킷에 대한 익명 또는 공용 액세스가 허용되지 않도록 합니다.

심각도: 높음

클라우드 스토리지 버킷에서 균일한 버킷 수준 액세스를 사용하도록 설정해야 함

설명: Cloud Storage 버킷에서 균일한 버킷 수준 액세스를 사용하도록 설정하는 것이 좋습니다. 균일한 버킷 수준 액세스를 사용하여 Cloud Storage 리소스에 대한 액세스 권한을 부여하는 방법을 통합하고 간소화하는 것이 좋습니다. Cloud Storage는 버킷 및 개체에 액세스할 수 있는 권한을 사용자에게 부여하기 위한 두 가지 시스템인 클라우드 IAM(클라우드 ID 및 액세스 관리) 및 ACL(액세스 제어 목록)을 제공합니다.
이러한 시스템은 병렬로 작동합니다. 사용자가 클라우드 스토리지 리소스에 액세스하려면 시스템 중 하나만 사용자 권한을 부여하면 됩니다. Cloud IAM은 Google Cloud 전체에서 사용되며 버킷 및 프로젝트 수준에서 다양한 권한을 부여할 수 있습니다. ACL은 클라우드 스토리지에서만 사용되며 권한 옵션이 제한되어 있지만 개체별로 권한을 부여할 수 있습니다.

균일한 권한 부여 시스템을 지원하기 위해 클라우드 스토리지에는 균일한 버킷 수준 액세스 권한이 있습니다. 이 기능을 사용하면 모든 Cloud Storage 리소스에 ACL을 사용하지 않도록 설정합니다. Cloud Storage 리소스에 대한 액세스 권한은 클라우드 IAM을 통해서만 부여됩니다. 균일한 버킷 수준 액세스를 사용하도록 설정하면 스토리지 버킷에 공개적으로 액세스할 수 없는 경우 버킷의 개체도 공개적으로 액세스할 수 없습니다.

심각도: 보통

컴퓨팅 인스턴스에 기밀 컴퓨팅을 사용하도록 설정해야 함

설명: Google Cloud는 미사용 데이터와 전송 중인 데이터를 암호화하지만 고객 데이터는 처리를 위해 암호 해독해야 합니다. 기밀 컴퓨팅은 처리되는 동안 사용 중인 데이터를 암호화하는 획기적인 기술입니다. 기밀 컴퓨팅 환경은 데이터를 메모리 및 CPU(중앙 처리 장치) 외부의 다른 곳에서 암호화된 상태로 유지합니다. 기밀 VM은 AMD EPYC CPU의 SEV(Secure Encrypted Virtualization) 기능을 활용합니다. 고객 데이터는 사용, 인덱싱, 쿼리 또는 학습되는 동안 암호화된 상태로 유지됩니다. 암호화 키는 VM별로 하드웨어에서 생성되며 내보낼 수 없습니다. 성능 및 보안 모두의 기본 제공 하드웨어 최적화 덕분에 기밀 컴퓨팅 워크로드에 상당한 성능 저하가 없습니다. 기밀 컴퓨팅은 처리 중에 고객의 중요한 코드 및 기타 데이터를 메모리에서 암호화할 수 있도록 합니다. Google은 암호화 키에 액세스할 수 없습니다. 기밀 VM은 Google 인프라에 대한 종속성 또는 Google 내부자의 고객 데이터 액세스와 관련된 위험에 대한 우려를 완화하는 데 도움이 될 수 있습니다.

심각도: 높음

로그 버킷의 보존 정책이 버킷 잠금을 사용하여 구성되어 있어야 함

설명: 로그 버킷에서 보존 정책을 사용하도록 설정하면 클라우드 스토리지 버킷에 저장된 로그가 덮어쓰거나 실수로 삭제되지 않도록 보호합니다. 보존 정책을 설정하고 로그 싱크로 사용되는 모든 스토리지 버킷에서 버킷 잠금을 구성하는 것이 좋습니다. 로그 필터와 대상을 포함하는 하나 이상의 싱크를 만들어 로그를 내보낼 수 있습니다. Stackdriver 로깅은 새 로그 항목을 수신하므로 각 싱크와 비교됩니다. 로그 항목이 싱크의 필터와 일치하면 로그 항목의 복사본이 대상에 로그됩니다. 스토리지 버킷의 로그를 내보내도록 싱크를 구성할 수 있습니다. 이러한 클라우드 스토리지 버킷에 대한 데이터 보존 정책을 구성하고 데이터 보존 정책을 잠그는 것이 좋습니다. 따라서 정책이 축소되거나 제거되지 않도록 영구적으로 방지합니다. 이렇게 하면 시스템이 공격자나 자신의 흔적을 숨기려는 악의적인 내부자에 의해 손상되는 경우에도 포렌식 및 보안 조사를 위한 활동 로그가 확실히 보존되어 있습니다.

심각도: 낮음

클라우드 SQL 데이터베이스 인스턴스에서는 들어오는 모든 연결에 SSL을 사용해야 함

설명: SSL을 사용하도록 SQL Database 인스턴스에 들어오는 모든 연결을 적용하는 것이 좋습니다. SQL 데이터베이스 연결(MITM)가 성공적으로 트래핑되면 자격 증명, 데이터베이스 쿼리, 쿼리 출력 등과 같은 중요한 데이터를 표시할 수 있습니다. 보안을 위해 인스턴스에 연결할 때 항상 SSL 암호화를 사용하는 것이 좋습니다. 이 권장 사항은 Postgresql, MySql 1세대 및 MySql 2세대 인스턴스에 적용됩니다.

심각도: 높음

SQL Server 인스턴스의 Cloud SQL에 대한 '포함된 데이터베이스 인증' 데이터베이스 플래그를 '끔'으로 설정해야 함

설명: SQL Server 인스턴스의 클라우드 SQL에 대해 "포함된 데이터베이스 인증" 데이터베이스 플래그를 "off"로 설정하는 것이 좋습니다. 포함된 데이터베이스에는 데이터베이스를 정의하는 데 필요한 모든 데이터베이스 설정과 메타데이터가 포함되며 데이터베이스가 설치된 데이터베이스 엔진 인스턴스에 대한 구성 종속성이 없습니다. 따라서 사용자는 데이터베이스 엔진 수준에서 로그인을 인증하지 않고 데이터베이스에 연결할 수 있습니다. 데이터베이스를 데이터베이스 엔진과 분리하면 데이터베이스를 다른 SQL Server 인스턴스로 손쉽게 이동할 수 있습니다. 포함된 데이터베이스에는 SQL Server 데이터베이스 엔진 관리자가 이해하고 완화해야 하는 몇 가지 고유한 위협이 있습니다. 대부분의 위협은 인증 경계를 데이터베이스 엔진 수준에서 데이터베이스 수준으로 이동하는 USER WITH PASSWORD 인증 프로세스와 관련되므로 이 플래그를 사용하지 않도록 설정하는 것이 좋습니다. 이 권장 사항은 SQL Server 데이터베이스 인스턴스에 적용됩니다.

심각도: 보통

Cloud SQL SQL Server 인스턴스에 대한 'db 간 소유권 연결' 데이터베이스 플래그를 '끔'으로 설정해야 함

설명: 클라우드 SQL Server 인스턴스에 대한 "db 소유권 체인 간" 데이터베이스 플래그를 "off"로 설정하는 것이 좋습니다. 연결 옵션에 "db 간 소유권"을 사용하여 Microsoft SQL Server 인스턴스에 대한 데이터베이스 간 소유권 체인을 구성합니다. 이 서버 옵션을 사용하면 데이터베이스 수준에서 데이터베이스 간 소유권 체인을 제어하거나 모든 데이터베이스의 데이터베이스 간 소유권 체인을 제어할 수 있습니다. SQL Server 인스턴스에서 호스팅하는 모든 데이터베이스가 데이터베이스 간 소유권 체인에 참여해야 하며 이 설정의 보안 영향을 인식하지 않는 한 "db 간 소유권"을 사용하도록 설정하는 것은 권장되지 않습니다. 이 권장 사항은 SQL Server 데이터베이스 인스턴스에 적용됩니다.

심각도: 보통

Cloud SQL Mysql 인스턴스에 대한 'local_infile' 데이터베이스 플래그를 '끔'으로 설정해야 함

설명: 클라우드 SQL MySQL 인스턴스의 local_infile 데이터베이스 플래그를 해제로 설정하는 것이 좋습니다. local_infile 플래그는 LOAD DATA 문에 대한 서버측 LOCAL 기능을 제어합니다. local_infile 설정에 따라 서버는 클라이언트 쪽에서 LOCAL이 사용하도록 설정된 클라이언트의 로컬 데이터 로드를 거부하거나 허용합니다. 서버에서 LOAD DATA LOCAL 문을 명시적으로 거부하도록 하려면(빌드 시간 또는 런타임에 클라이언트 프로그램 및 라이브러리를 구성하는 방법에 관계없이) local_infile 사용하지 않도록 설정하기 시작 mysqld 합니다. local_infile은 런타임에 설정할 수도 있습니다. local_infile 플래그와 관련된 보안 문제로 인해 사용하지 않도록 설정하는 것이 좋습니다. 이 권장 사항은 MySQL 데이터베이스 인스턴스에 적용됩니다.

심각도: 보통

클라우드 스토리지 IAM 권한 변경에 대한 로그 메트릭 필터 및 경고가 있어야 함

설명: Cloud Storage 버킷 IAM 변경에 대한 메트릭 필터 및 경보를 설정하는 것이 좋습니다. 클라우드 스토리지 버킷 권한에 대한 변경 내용을 모니터링하면 버킷 내의 중요한 클라우드 스토리지 버킷 및 개체에 대한 권한을 검색하고 수정하는 데 필요한 시간이 단축될 수 있습니다.

심각도: 낮음

SQL 인스턴스 구성 변경에 대한 로그 메트릭 필터 및 경고가 있어야 함

설명: SQL 인스턴스 구성 변경에 대한 메트릭 필터 및 경보를 설정하는 것이 좋습니다. SQL 인스턴스 구성 변경 내용을 모니터링하면 SQL 서버에서 수행된 잘못된 구성을 감지하고 수정하는 데 필요한 시간이 단축될 수 있습니다. 다음은 SQL 인스턴스의 보안 태세에 영향을 줄 수 있는 몇 가지 구성 가능한 옵션입니다.

  • 자동 백업 및 고가용성 사용: 구성이 잘못되어 비즈니스 연속성, 재해 복구 및 고가용성에 부정적인 영향을 줄 수 있습니다.
  • 네트워크 권한 부여: 잘못된 구성으로 신뢰할 수 없는 네트워크에 대한 노출이 증가할 수 있습니다.

심각도: 낮음

각 서비스 계정에 대해 GCP 관리 서비스 계정 키만 있어야 함

설명: 사용자 관리 서비스 계정에는 사용자 관리형 키가 없어야 합니다. 키에 액세스할 수 있는 사용자는 누구나 서비스 계정을 통해 리소스에 액세스할 수 있습니다. GCP 관리형 키는 앱 엔진 및 컴퓨팅 엔진과 같은 Cloud 플랫폼 서비스에서 사용됩니다. 이러한 키는 다운로드할 수 없습니다. Google은 키를 보관하고 대략 매주 자동으로 회전합니다. 사용자 관리형 키는 사용자가 만들며 사용자가 다운로드 및 관리합니다. 만들어진 후 10년이 지나면 만료됩니다. 사용자 관리형 키의 경우 사용자는 다음을 포함하는 키 관리 활동의 소유권을 가져와야 합니다.

  • 키 스토리지
  • 키 배포
  • 키 해지
  • 키 회전
  • 권한이 없는 사용자로부터 키 보호
  • 키 복구

주요 소유자 예방 조치에도 불구하고 키는 소스 코드에 키를 확인하거나 다운로드 디렉터리에 두거나 실수로 지원 블로그/채널에 그대로 두는 것과 같은 최적 이하의 일반적인 개발 방법으로 쉽게 유출될 수 있습니다. 사용자 관리 서비스 계정 키를 방지하는 것이 좋습니다.

심각도: 낮음

Cloud SQL SQL Server 인스턴스에 대한 '사용자 연결' 데이터베이스 플래그를 적절하게 설정해야 함

설명: 조직 정의 값에 따라 클라우드 SQL Server 인스턴스에 대한 "사용자 연결" 데이터베이스 플래그를 설정하는 것이 좋습니다. "사용자 연결" 옵션은 SQL Server인스턴스에 허용되는 최대 동시 사용자 연결 수를 지정합니다. 허용되는 실제 사용자 연결 수는 사용 중인 SQL Server 버전과 애플리케이션 또는 애플리케이션 및 하드웨어의 제한에 따라 달라집니다. SQL Server에서는 최대 32,767개의 사용자 연결을 허용합니다. 사용자 연결은 동적(자체 구성) 옵션이므로 SQL Server는 필요에 따라 최대 사용자 연결 수를 허용되는 최대값까지 자동으로 조정합니다. 예를 들어 10명의 사용자만 로그인하면 10개의 사용자 연결 개체가 할당됩니다. 대부분의 경우 이 옵션의 값을 변경할 필요가 없습니다. 기본값은 0입니다. 즉, 최대(32,767) 사용자 연결이 허용됩니다. 이 권장 사항은 SQL Server 데이터베이스 인스턴스에 적용됩니다.

심각도: 낮음

Cloud SQL SQL Server 인스턴스에 대한 '사용자 옵션' 데이터베이스 플래그를 구성하지 않아야 함

설명: 클라우드 SQL Server 인스턴스에 대한 "사용자 옵션" 데이터베이스 플래그를 구성하지 않는 것이 좋습니다. "user options" 옵션은 모든 사용자에 대한 전역 기본값을 지정합니다. 기본 쿼리 처리 옵션 목록은 사용자의 작업 세션 기간에 대해 설정됩니다. 사용자 옵션 설정을 사용하면 SET 옵션의 기본값을 변경할 수 있습니다(서버의 기본 설정이 적절하지 않은 경우). 사용자는 SET 문을 사용하여 이 기본값을 무시할 수 있습니다. 새 로그인에 대한 사용자 옵션을 동적으로 구성할 수 있습니다. 사용자 옵션 설정을 변경하면 새 로그인 세션에서 새 설정을 사용합니다. 현재 로그인 세션은 영향을 받지 않습니다. 이 권장 사항은 SQL Server 데이터베이스 인스턴스에 적용됩니다.

심각도: 낮음

GKE 클러스터에 대한 로깅을 사용하도록 설정해야 함

설명: 이 권장 사항은 클러스터의 loggingService 속성에 클라우드 로깅이 로그를 작성하는 데 사용해야 하는 위치가 포함되어 있는지 여부를 평가합니다.

심각도: 높음

싱크가 구성된 스토리지 버킷에서 개체 버전 관리를 사용하도록 설정해야 함

설명: 이 권장 사항은 버킷의 버전 관리 속성에서 사용 가능한 필드가 true로 설정되어 있는지 여부를 평가합니다.

심각도: 높음

PCI(권한 증가 인덱스)를 줄이기 위해 프로젝트에서 과도하게 프로비전된 ID를 조사해야 함

설명: PCI(권한 크리프 인덱스)를 줄이고 인프라를 보호하기 위해 프로젝트에서 과도하게 프로비전된 ID를 조사해야 합니다. 사용되지 않는 위험 수준이 높은 권한 할당을 제거하여 PCI를 줄입니다. 높은 PCI는 정상 또는 필요한 사용량을 초과하는 권한이 있는 ID와 관련된 위험을 반영합니다.

심각도: 보통

암호화 키가 있는 프로젝트에는 소유자 권한이 있는 사용자가 없어야 함

설명: 이 권장 사항은 할당된 역할/소유자에 대한 프로젝트 메타데이터의 IAM 허용 정책을 평가합니다.

심각도: 보통

로그 싱크로 사용되는 스토리지 버킷은 공개적으로 액세스할 수 없어야 함

설명: 이 권장 사항은 공용 액세스 권한을 부여하는 보안 주체 allUsers 또는 allAuthenticatedUsers에 대한 버킷의 IAM 정책을 평가합니다.

심각도: 높음