구성 및 리소스 데이터 수집을 위해 Microsoft Azure에 연결

Security Command Center Enterprise 등급을 Microsoft Azure 환경에 연결하여 다음을 수행할 수 있습니다.

  • 잘못된 구성과 관련된 발견 항목의 감지를 사용 설정합니다.
  • 공개 인터넷에서 고가치 Microsoft Azure 애셋까지의 잠재적 공격 경로를 식별합니다.
  • 다양한 표준 및 벤치마크로 Microsoft Azure 리소스의 규정 준수 매핑

Security Command Center와 Microsoft Azure를 연결하면 팀이 Google Cloud 와 Azure의 구성 오류를 한곳에서 관리하고 해결할 수 있습니다.

Google Cloud 서비스 에이전트와 모니터링하려는 Azure 리소스에 대한 액세스 권한이 있는 Microsoft Azure 사용자 할당 관리 ID를 사용하여 Security Command Center와 Azure 간의 신뢰 연결을 구성합니다. Microsoft Azure 환경에서 신뢰 구성을 관리하고 제어합니다.

Google Cloud 조직당 하나의 Azure 연결을 만들 수 있습니다.

Security Command Center는 이 연결을 사용해서 정의된 Microsoft Azure 리소스에 관한 데이터를 주기적으로 수집합니다. 이 데이터는 Google Cloud 개인정보처리방침에 따라 서비스 데이터와 동일한 방식으로 처리됩니다. 커넥터는 API 호출을 사용하여 Azure 애셋 데이터를 수집합니다. 이러한 API 호출에는 Microsoft Azure 요금이 부과될 수 있습니다.

검사 중에 데이터 수집 파이프라인은 서비스 에이전트가 사용자 할당 관리 ID를 사용하여 Microsoft Azure 환경에 인증하도록 합니다.

다음 다이어그램은 Security Command Center와 Azure 간에 신뢰가 설정되는 방식을 보여줍니다.

Azure 및 Security Command Center 구성

이 문서에서는 Microsoft Azure와의 연결을 설정하는 방법을 설명합니다. 대략적인 단계는 다음과 같습니다.

  1. 시작하기 전에의 기본 요건 단계를 실행합니다.

  2. Azure 커넥터를 만들고 스캔할 구독과 위치를 구성합니다. 이 단계를 수행하려면 Microsoft Azure 테넌트 ID가 필요합니다. 이렇게 하면 서비스 에이전트 ID가 생성됩니다.

  3. 다음 역할이 있는 전용 사용자 할당 관리 ID를 만들도록 Azure 환경을 구성합니다.

    • Microsoft Azure 루트 관리 그룹 범위의 읽기 권한 사용자로 리소스, 구독, 관리 그룹 계층 구조를 읽습니다.

    • Microsoft Azure 루트 관리 그룹 범위의 Key Vault Reader: 키 저장소 및 관련 인증서, 키, 보안 비밀에 관한 메타데이터를 읽습니다.

    • Microsoft Azure 루트 관리 그룹 범위의 Storage Blob Data Reader를 사용하여 리소스에 관한 메타데이터를 읽습니다. Azure 커넥터를 구성할 때 Sensitive Data Protection 검색을 위한 권한 부여를 사용 설정할 계획이라면 이 역할을 부여하세요.

    • Microsoft Entra ID의 디렉터리 독자가 그룹과 멤버십을 읽습니다.

    • Microsoft Entra ID의 보안 읽기 권한 사용자가 승인 정책을 읽을 수 있습니다.

    루트 관리 그룹의 기본 표시 이름은 Tenant root group입니다.

    이러한 권한은 Security Command Center가 리소스 계층 구조에서 구독보다 높은 수준에 있는 관리 그룹, 회원십이 있는 그룹, 역할 정의를 식별하는 데 필요합니다.

    서비스 에이전트에 관한 정보를 사용하여 사용자 할당 관리 ID의 제휴 ID 사용자 인증 정보도 구성합니다.

    단계를 수동으로 수행하거나 Terraform을 사용하면 됩니다. 단계를 수동으로 실행할 때는 서비스 에이전트 ID가 필요합니다.

  4. Azure 커넥터의 구성을 완료하고 연결을 테스트합니다. 사용자 할당 관리 ID에 관한 정보를 사용하여 이러한 단계를 수행합니다.

Azure 커넥터는 Security Command Center Enterprise의 SIEM 선별 감지 기능에 필요한 Azure 로그를 수집하지 않습니다. 자세한 내용은 로그 데이터 수집을 위해 Microsoft Azure에 연결을 참고하세요.

시작하기 전에

다음 섹션에서는 Security Command Center와 Microsoft Azure 간의 연결을 구성하기 전에 필요한 기본 요건, 결정, 정보에 대해 설명합니다.

Microsoft Azure 기능 검토

Microsoft Azure의 다음 개념과 기능을 숙지해야 합니다.

데이터 수집 계획

데이터 수집 전략을 계획할 때는 다음을 수행하세요. 이 문서의 단계를 수행할 때 이 정보가 필요합니다.

  • 사용자 정의 관리 ID를 만들 리소스 그룹을 만들거나 식별합니다. 구성 중에 리소스 그룹 이름이 필요합니다.

    RESOURCE_GROUP_NAME 변수를 리소스 그룹 이름으로 바꿔 이 문서의 다음 단계에서 값을 채웁니다.

  • 데이터를 수집할 리소스를 식별합니다. 특정 구독 또는 지역에서만 데이터를 수집할 계획이라면 계획 단계에서 이를 식별하고 기록하세요.

    또한 모든 구독과 리전에서 리소스를 자동으로 검색하도록 Azure 커넥터를 구성할 수도 있습니다.

Google Cloud에서 권한 설정하기

Google Cloud에서 서드 파티 클라우드 제공업체에 대한 연결을 만들고 관리하려면 조직에서 클라우드 애셋 소유자 (roles/cloudasset.owner) 역할을 부여받아야 합니다. 역할 부여에 대한 자세한 내용은 액세스 관리를 참고하세요.

Microsoft Azure에서 권한 설정

Microsoft Azure 수동 구성 또는 Terraform을 사용하여 Microsoft Azure 구성의 단계를 수행하려면 리소스 그룹이 하나 이상 생성된 Azure ID와 Microsoft Azure 및 Microsoft Entra의 IAM 정책을 구성할 수 있는 다음 권한이 있어야 합니다.

  • 루트 관리 그룹 범위의 Microsoft.Authorization/roleAssignments/write 권한 이 기능은 역할 기반 액세스 제어 관리자 또는 사용자 액세스 관리자 기본 제공 역할에서 사용할 수 있습니다.

  • 사용자 할당 관리 ID가 생성될 리소스 그룹 범위의 다음 권한:

    • Microsoft.ManagedIdentity/userAssignedIdentities/write
    • Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write

    이러한 권한은 기본 제공 관리 ID 참여자 역할에서 사용할 수 있습니다.

  • Microsoft Entra 권한 microsoft.directory/roleAssignments/allProperties/allTasks 이 권한은 Microsoft Entra 기본 제공 역할인 권한 있는 역할 관리자에서 사용할 수 있습니다.

루트 관리 그룹 범위에서 권한을 설정하려면 액세스 권한이 있어야 합니다. 전역 관리자의 액세스 권한을 상승하는 단계는 모든 Azure 구독 및 관리 그룹을 관리하기 위한 액세스 권한 상승을 참고하세요.

Security Command Center Azure 커넥터 사용 설정 및 구성

Azure 커넥터를 만들고 구성하려면 다음 단계를 따르세요.

  1. Google Cloud에서 권한 설정 섹션에 정의된 권한이 있는지 확인합니다.

  2. 36자리 Microsoft Azure 테넌트 ID가 있는지 확인합니다.

  3. 설정 페이지에서 커넥터 탭을 엽니다.

    커넥터로 이동

  4. Security Command Center Enterprise를 활성화한 조직을 선택합니다.

  5. 커넥터 추가 > Microsoft Azure를 클릭합니다.

  6. 커넥터 구성 페이지에서 Azure 테넌트 ID를 입력합니다.

  7. Sensitive Data Protection이 Azure 데이터를 프로파일링하도록 허용하려면 Sensitive Data Protection 검색을 위한 권한 부여를 선택한 상태로 둡니다. 이 옵션은 사용자 정의 관리 ID용 Terraform 템플릿에 Storage Blob Data Reader 역할을 추가합니다.

  8. 다음 중 하나를 선택합니다.

    • 자동으로 구독 추가: Security Command Center에서 구독 및 관리 그룹을 자동으로 검색하고 포함합니다. Azure 구독 제외 필드에 구독 ID를 추가하여 수집되지 않도록 선택적으로 제외할 수 있습니다.

    • 개별적으로 구독 추가: Security Command Center에서 구독을 자동으로 검색하지 않습니다. Azure 구독 추가 필드를 사용하여 구독을 하나 이상 정의해야 합니다.

  9. 데이터를 수집할 Azure 위치 선택 섹션에서 데이터를 수집할 Microsoft Azure 위치를 하나 이상 선택합니다(선택사항). 모든 위치에서 수집하려면 이 필드를 비워 둡니다. 메뉴에서 위치를 선택하면 선택 해제된 위치가 제외됩니다.

    Azure 구독 자동 검색을 사용하고 모든 Microsoft Azure 위치를 사용하는 것이 좋습니다.

  10. 다음을 클릭합니다. Azure에 연결 페이지가 열립니다.

  11. Azure에 연결 페이지를 열어 두고 Microsoft Azure 환경 구성을 계속합니다.

    Microsoft Azure를 구성한 후 이 페이지로 돌아와 Azure 커넥터 구성을 완료합니다.

Microsoft Azure 환경 구성

다음 섹션 중 하나를 작성합니다.

Microsoft Azure 수동 구성

다음 섹션에서는 Security Command Center와 Microsoft Azure 간의 트러스트를 설정하는 Azure 환경을 구성하는 고급 수동 단계를 설명합니다. 이 절차는 포괄적이지 않습니다. 각 섹션에서는 해당 작업을 수행하는 방법을 설명하는 Microsoft Azure 문서 링크를 제공합니다.

기본 요건

1단계: 리소스 그룹에서 사용자 할당 관리 ID 만들기

  1. 사용자 할당 관리 ID 관리의 단계에 따라 사용자 할당 관리 ID를 만듭니다.

    ID를 만들 때 다음을 지정합니다.

    • 구독: ID가 관리될 구독을 선택합니다.
    • 리소스 그룹: ID가 관리될 리소스 그룹 이름(RESOURCE_GROUP_NAME)을 지정합니다. 데이터 수집을 계획할 때 이를 식별했습니다.
    • 리전: 리전을 선택합니다(예: East US).
    • 이름: 사용자 할당 관리형 ID의 이름을 입력합니다(예: gcp-managed-identity). USER_ASSIGNED_MANAGED_IDENTITY_NAME 변수를 ID 이름으로 바꾸면 필요한 경우 이 문서의 단계에 채워집니다.
  2. 다음 정보를 기록합니다. 이 값은 이후 단계에서 사용됩니다.

    • 클라이언트 ID: ID에 할당된 36자리 값입니다.
    • 객체 (주 구성원) ID: ID에 할당된 36자리 값입니다.
    • ID 이름: 이름에 정의한 값입니다.

2단계: 사용자 할당 관리 ID의 제휴 사용자 인증 정보 만들기

사용자 할당 관리 ID에 제휴 사용자 인증 정보를 추가하려면 외부 ID 공급업체를 신뢰하도록 사용자 할당 관리 ID 구성의 단계를 따르세요.

기타 발급자 시나리오에 설명된 안내를 사용하고 다음을 설정합니다.

  • 제휴 사용자 인증 정보 시나리오: 기타: 이 애플리케이션으로 Microsoft Azure 리소스에 액세스하도록 외부 OpenID Connect 공급업체에서 관리하는 ID 구성을 선택합니다.
  • 발급자 URL: https://accounts.google.com를 입력합니다.
  • Subject identifier: Security Command Center Azure 커넥터를 만들 때 생성된 서비스 에이전트 ID를 입력합니다.
  • 이름: 제휴 사용자 인증 정보의 이름을 입력합니다(예: gcp-managed-identity-fic).
  • Audience: https://cloud.google.com을 입력합니다.

3단계: Microsoft Azure 기본 제공 역할 할당

Azure 포털을 사용하여 Azure 역할 할당의 단계에 따라 사용자 할당 관리 ID에 다음 Microsoft Azure 기본 제공 역할을 할당합니다.

  • Key Vault Reader
  • 리더
  • 스토리지 Blob 데이터 리더

루트 관리 그룹 범위에서 이러한 역할을 부여합니다.

4단계: Microsoft Entra ID 기본 제공 역할 할당

사용자에게 Microsoft Entra 역할 할당의 단계에 따라 사용자 할당 관리 ID에 다음 Microsoft Entra ID 기본 제공 역할을 할당합니다.

  • 디렉터리 리더
  • 보안 리더

완료되면 Azure 커넥터 구성 완료 섹션을 계속 진행합니다.

Terraform을 사용하여 Microsoft Azure 구성

다음 개략적인 단계에서는 Terraform을 사용하여 Microsoft Azure를 구성하는 방법을 설명합니다. 이 절차는 포괄적이지 않습니다. Terraform을 사용하여 리소스를 프로비저닝하는 방법에 대한 자세한 내용은 Azure의 Terraform 문서를 참고하세요.

  1. Azure 커넥터를 만들 때 열어 둔 Azure에 연결 페이지를 엽니다.

  2. Terraform 템플릿 다운로드를 클릭합니다. 이렇게 하면 여러 JSON 파일이 포함된 azure_terraform.zip 파일이 다운로드됩니다.

  3. Microsoft Azure에 로그인한 다음 BASH 또는 Azure PowerShell로 Azure Cloud Shell을 엽니다.

  4. 다음 안내 중 하나를 사용하여 조직 정책에 따라 Terraform을 구성합니다.

  5. azure_terraform.zip 파일을 Azure Cloud Shell 환경에 복사한 다음 콘텐츠를 추출합니다. main.tf.json, outputs.tf.json, providers.tf.json, variables.tf.json 파일이 표시됩니다.

  6. 별도의 디렉터리에 이러한 파일의 사본을 만듭니다.

    1. 샘플 Terraform 코드를 테스트할 새 디렉터리를 만들고 이를 현재 디렉터리로 설정합니다.
    2. 새로 만든 디렉터리에서 추출된 JSON 파일의 사본을 원본 파일과 동일한 이름으로 만듭니다.

      • main.tf.json라는 새 파일을 만든 다음 추출된 main.tf.json 파일의 코드를 복사하여 붙여넣습니다.
      • providers.tf.json라는 새 파일을 만든 다음 추출된 providers.tf.json 파일의 코드를 복사하여 붙여넣습니다.
      • outputs.tf.json라는 새 파일을 만든 다음 추출된 outputs.tf.json 파일에서 코드를 복사하여 붙여넣습니다.
      • variables.tf.json라는 새 파일을 만든 다음 추출된 variables.tf.json 파일에서 코드를 복사하여 붙여넣습니다.
  7. 다음 명령어를 실행하여 Terraform 배포를 초기화합니다.

    terraform init -upgrade
    
  8. 다음 명령어를 실행하여 실행 계획을 만듭니다.

    terraform plan -out main.tfplan -var="resource_group_name=RESOURCE_GROUP_NAME" -var="user_assigned_managed_identity_name=USER_ASSIGNED_MANAGED_IDENTITY_NAME"
    

    다음을 바꿉니다.

    • RESOURCE_GROUP_NAME: 사용자 할당 관리 ID가 생성될 Microsoft Azure 리소스 그룹의 이름입니다.
    • USER_ASSIGNED_MANAGED_IDENTITY_NAME: 생성할 사용자 할당 관리 ID의 이름입니다. 지정되지 않은 경우 기본값은 google-cloud-managed-identity입니다.
  9. 다음 명령어를 실행하여 실행 계획을 Microsoft Azure 인프라에 적용합니다.

    terraform apply main.tfplan
    
  10. Azure 커넥터 구성 완료 섹션을 계속 진행합니다.

Azure 커넥터 구성 완료

  1. Microsoft Azure 사용자 할당 관리 ID에 관한 다음 정보가 있는지 확인합니다.

    • 클라이언트 ID: ID에 할당된 36자리 값입니다.
    • 객체 (주 구성원) ID: ID에 할당된 36자리 값입니다.

    이 정보를 찾는 방법에 대한 자세한 내용은 사용자 할당 관리 ID 나열을 참고하세요.

  2. Azure 커넥터를 만들 때 열어 둔 Azure에 연결 페이지를 엽니다.

  3. Azure 관리형 ID 세부정보 섹션에서 다음을 입력합니다.

    • 관리형 ID 클라이언트 ID: 클라이언트 ID입니다.
    • 관리형 ID 객체 ID: 객체 (주 구성원) ID입니다.
  4. 계속을 클릭합니다.

  5. 커넥터 테스트 페이지에서 커넥터 테스트를 클릭하여 Security Command Center가 Microsoft Azure 환경에 연결할 수 있는지 확인합니다.

    연결에 성공하면 Google Cloud 서비스 에이전트가 Microsoft Azure 사용자 할당 관리 ID를 맡을 수 있으며 필요한 Microsoft Azure 및 Microsoft Entra 권한이 있습니다. 연결에 실패하면 연결 테스트 시 오류 문제 해결을 참고하세요.

  6. 저장을 클릭합니다. 커넥터 페이지가 표시됩니다.

커넥터가 지정한 Azure 구독 및 위치에서 데이터를 스캔하고 수집하기 시작합니다. 결과가 표시되려면 최대 24시간이 소요될 수 있습니다.

연결 테스트 시 오류 문제 해결

다음 섹션에서는 Security Command Center와 Microsoft Azure 간의 연결을 테스트할 때 발생할 수 있는 오류와 각 오류를 해결하는 방법을 설명합니다.

AZURE_ENABLED_SUBSCRIPTIONS_NOT_FOUND 오류

Azure 커넥터가 Azure 테넌트 ID 필드로 식별된 테넌트에서 사용 설정된 구독을 찾지 못했습니다. 다음 사항을 확인하세요.

  • 구독 자동 추가가 선택된 경우 테넌트에 Enabled 상태이고 Azure 구독 제외 필드에 표시되지 않는 구독이 포함되어 있는지 확인합니다.
  • 개별적으로 구독 추가를 선택한 경우 지정한 구독이 Enabled 상태인지 확인합니다.

AZURE_FAILED_TO_ASSUME_MANAGED_IDENTITY 오류

Microsoft Azure 사용자 할당 관리 ID를 Google Cloud 서비스 에이전트가 맡을 수 없으므로 연결이 잘못되었습니다. 다음은 가능한 원인입니다.

  • 연결에 지정된 사용자 할당 관리 ID가 없거나 구성이 잘못되었습니다.
  • 연결에 지정된 사용자 할당 관리형 ID에 Google Cloud 서비스 에이전트를 신뢰하는 데 필요한 제휴 ID 사용자 인증 정보가 누락되었을 수 있습니다.

이 문제를 해결하려면 다음 단계를 따르세요.

AZURE_MANAGED_IDENTITY_MISSING_REQUIRED_PERMISSION 오류

Azure 사용자 할당 관리 ID에 필수 Microsoft Azure 또는 Microsoft Entra 역할이 누락되어 연결이 잘못되었습니다. 오류 메시지에는 누락된 역할이 포함됩니다.

이 문제를 해결하려면 Microsoft Azure 기본 제공 역할Microsoft Entra 기본 제공 역할을 구성할 때 설정한 설정을 검토하여 구성이 올바른지 확인합니다.

AZURE_MANAGED_IDENTITY_ASSUMPTION_FAILED_AND_MISSING_REQUIRED_PERMISSION 오류

Microsoft Azure 사용자 할당 관리 ID가 Google Cloud 서비스 에이전트에 의해 맡아지지 않았으며 동시에 필요한 Microsoft Azure 또는 Microsoft Entra 역할 중 일부가 누락되었기 때문에 연결이 잘못되었습니다.

오류 메시지에는 사용자 할당 관리 ID가 어떤 범위를 가정하지 못했는지, 어떤 역할이 누락되었는지에 관한 세부정보가 포함됩니다.

이 문제를 해결하려면 다음 단계를 따르세요.

기타 문제 해결 도움말

다음 섹션에서는 동작과 해결을 위한 가능한 단계를 설명합니다.

삭제된 Azure 리소스에 대해 발견 사항이 반환됨

Azure 리소스가 삭제된 후 Security Command Center 애셋 인벤토리 시스템에서 삭제되는 데 최대 40시간이 걸릴 수 있습니다. 리소스 삭제를 통해 발견 항목을 해결하는 경우 애셋이 아직 Security Command Center 애셋 인벤토리 시스템에서 삭제되지 않았기 때문에 이 기간 내에 발견 항목이 보고될 수 있습니다.

다음 단계