타사 ID 공급업체 구성

다음에서 지원:

이 가이드는 서드 파티 ID 공급업체 (IdP)를 사용하여 Google SecOps에서 직원 (사용자 및 그룹)을 인증하려는 Google Security Operations 관리자를 대상으로 합니다. 이 프로세스는Google Cloud 직원 ID 제휴를 활용하여 가능합니다.

직원 ID 제휴는 Okta, Microsoft Entra ID, Microsoft Active Directory Federation Services (AD FS)와 같이 Security Assertion Markup Language (SAML 2.0) 또는 OpenID Connect (OIDC)를 사용하는 모든 IdP를 지원합니다.

이 문서에서는 직원 ID 제휴를 사용하여 SAML 기반 IdP를 통해 인증을 설정하는 대략적인 단계를 설명합니다.

  1. 필요한 리소스 계획 직원 ID 풀 및 제공업체 세부정보를 결정하고 Google SecOps에서 기능 액세스를 구성하는 데 필요한 사용자 속성 및 그룹을 식별합니다.
  2. 서드 파티 IdP 애플리케이션을 구성합니다. 직원 ID 제휴 및 Google SecOps와 통합할 IdP SAML 애플리케이션을 만듭니다.
  3. 직원 ID 제휴 구성 직원 ID 풀 및 공급자를 구성하고 IdP 그룹 및 사용자에게 Google Cloud Identity and Access Management (IAM) 역할을 부여합니다.
  4. 새로 만든 제공업체를 사용하여 싱글 사인온 (SSO)을 구성합니다.

이 단계를 완료하면 ID 제공업체로 Google SecOps에 로그인하고 IAM을 사용하여 기능 역할 기반 액세스 제어 (RBAC)를 통해 사용자 액세스를 관리할 수 있습니다.

일반적인 사용 사례

Google SecOps에서는 다양한 사용 사례에 대한 SSO 브로커로 직원 ID 제휴를 사용해야 합니다.

엄격한 보안 표준 준수

  • 목표: 시스템 및 클라우드 액세스에 대한 엄격한 규제 표준을 준수합니다.
  • 가치: SSO를 안전하게 중개하여 FedRAMP 높음 (또는 그 이상) 규정 준수 요구사항을 준수하도록 지원합니다.

엔터프라이즈 액세스 제어 관리

  • 목표: 조직 전체에서 기능 및 데이터 액세스를 중앙에서 제어합니다.
  • 가치: IAM을 사용하여 Google SecOps에서 엔터프라이즈급 RBAC를 사용 설정합니다.

API 프로그래매틱 액세스 자동화

  • 목표: Chronicle API와 안전하게 상호작용할 수 있는 셀프 서비스 방법을 제공합니다.
  • 가치: 고객이 프로그래매틱 방식으로 사용자 인증 정보를 관리할 수 있도록 하여 수동 관리 오버헤드를 줄입니다.

주요 용어

  • 직원 풀: 조직 수준에서 정의되며 직원에게 Google SecOps에 대한 액세스 권한을 부여하는 전역적으로 고유한 Google Cloud 리소스입니다.
  • 직원 제공업체: 단일 외부 IdP의 구성 세부정보를 저장하는 직원 ID 풀의 하위 리소스입니다.
  • 속성 매핑: Common Expression Language (CEL)를 사용하여 IdP에서 제공하는 어설션 속성을 Google Cloud 속성으로 변환하는 프로세스입니다.
  • 어설션 소비자 서비스 (ACS) URL: Google SecOps와 통신하도록 SAML 애플리케이션을 구성하는 데 사용되는 특정 URL입니다 (제공업체에 따라 싱글 사인온 URL이라고도 함).
  • 엔티티 ID: Google SecOps와 같은 특정 애플리케이션 또는 서비스를 식별하고 IdP 내에서 SAML 애플리케이션을 구성하는 전역적으로 고유한 식별자 URL입니다.

프로세스 개요

Google SecOps는 사용자에게 서비스 제공업체에서 시작된 (SP에서 시작) SAML SSO를 지원합니다. 이 기능을 통해 사용자가 Google SecOps로 직접 이동할 수 있습니다. Google SecOps는 IAM 직원 ID 제휴를 통해 서드 파티 IdP에 요청을 실행합니다.

IdP가 사용자 ID를 인증한 후에는 인증 어설션과 함께 Google SecOps로 사용자가 반환됩니다. Google Cloud 직원 ID 제휴는 인증 흐름에서 중간 단계 역할을 수행합니다.

Google SecOps, Google Cloud IAM 직원 ID 제휴, IdP 사이의 통신

Google SecOps, IAM 직원 ID 제휴, IdP 간 통신

개략적으로 통신은 다음과 같이 수행됩니다.

  1. 사용자가 Google SecOps로 이동합니다.
  2. Google SecOps가 Google Cloud 직원 ID 풀에서 IdP 정보를 찾습니다.
  3. 요청이 IdP로 전송됩니다.
  4. SAML 어설션이 Google Cloud 직원 ID 풀로 전송됩니다.
  5. 인증에 성공하면 Google SecOps는 개발자가 직원 ID 풀에 직원 프로바이더를 구성할 때 정의된 SAML 속성만 수신합니다.

Google SecOps 관리자는 ID 공급업체에서 그룹을 만들고, SAML 애플리케이션을 구성하여 어설션에서 그룹 멤버십 정보를 전달하고, 사용자 및 그룹을 Google SecOps IAM의 사전 정의된 역할 또는 직접 만든 커스텀 역할에 연결합니다.

시작하기 전에

구현 계획

이 섹션에서는 이 문서의 단계를 수행하기 전에 수행하는 결정과 정의하는 정보에 대해 설명합니다.

직원 ID 풀 및 직원 제공업체 정의

IdP를 통해 인증을 설정하려면 인증 흐름의 중간 단계로 직원 ID 제휴를 구성해야 합니다. 직원 ID 제휴를 구성하기 전에 다음Google Cloud 리소스를 정의합니다.

  • 직원 풀: 직원 ID 풀은 직원과 같은 인력에게 Google SecOps에 대한 액세스 권한을 부여합니다.
  • 직원 제공업체: 단일 IdP에 관한 세부정보를 저장하는 직원 ID 풀의 하위 리소스입니다.

직원 ID 풀과 직원 제공업체, 단일 고객 하위 도메인으로 식별된 Google SecOps 인스턴스 사이의 관계는 다음과 같습니다.

  • 직원 ID 풀은 조직 수준에서 정의됩니다.
  • 각 Google SecOps 인스턴스에는 직원 ID 풀이 구성되고 연결되어 있습니다.
  • 직원 ID 풀은 여러 직원 제공업체를 포함할 수 있습니다.
  • 각 직원 제공업체는 서드 파티 IdP를 직원 ID 풀과 통합합니다.

  • 직원 ID 풀은 Google SecOps 전용이어야 합니다. Google SecOps용으로 만든 풀은 다른 목적으로 공유할 수 없습니다.

  • Google SecOps에 바인딩된 프로젝트가 포함된 동일한Google Cloud 조직에서 직원 ID 풀을 만들어야 합니다.

다음은 직원 풀 및 직원 제공업체의 주요 식별자 값을 정의하기 위한 가이드라인입니다.

  • 직원 풀 ID (WORKFORCE_POOL_ID): 직원 ID 풀의 범위 또는 목적을 나타내는 값을 정의합니다. 값이 다음 요구사항을 충족해야 합니다.
    • 전역적으로 고유해야 합니다.
    • 소문자 [a-z], 숫자 [0-9], 대시 [-]만 사용해야 합니다.
    • 소문자 [a-z]로 시작해야 합니다.
    • 소문자 [a-z] 또는 숫자 [0-9]로 끝나야 합니다.
    • 길이가 4~61자 사이여야 합니다.
  • 직원 풀 표시 이름(WORKFORCE_POOL_DISPLAY_NAME): 직원 ID 풀에 사용자 친화적인 이름을 정의합니다.
  • 직원 풀 설명(WORKFORCE_POOL_DESCRIPTION): 직원 ID 풀에 대한 자세한 설명을 정의합니다.
  • 직원 제공업체 ID (WORKFORCE_PROVIDER_ID): IdP가 나타내는 값을 정의합니다. 값이 다음 요구사항을 충족해야 합니다.
    • 소문자 [a-z], 숫자 [0-9], 대시 [-]만 사용해야 합니다.
    • 길이가 4~32자 사이여야 합니다.
  • 직원 제공업체 표시 이름(WORKFORCE_PROVIDER_DISPLAY_NAME): 직원 제공업체에 사용자 친화적인 이름을 정의합니다. 길이가 32자(영문 기준) 미만이어야 합니다.
  • 직원 제공업체 설명(WORKFORCE_PROVIDER_DESCRIPTION): 직원 제공업체에 대한 자세한 설명을 정의합니다.

IdP에서 사용자 속성 및 그룹 정의

IdP에서 SAML 애플리케이션을 만들기 전에 Google SecOps에서 기능 액세스를 구성하는 데 필요한 사용자 속성 및 그룹을 식별합니다. 일반적인 사용자 속성은 다음과 같습니다.

  • 제목
  • 이메일
  • 이름
  • 표시 이름

이 프로세스의 다음 단계를 수행하는 동안 사용자 그룹 및 속성에 관한 정보가 필요합니다.

  • SAML 애플리케이션을 구성할 때 계획 중에 정의된 그룹을 만듭니다. 어설션에 그룹 멤버십을 전달하도록 IdP SAML 애플리케이션을 구성합니다.

  • 직원 프로바이더를 만들 때 어설션 속성 및 그룹을 Google Cloud 속성에 매핑합니다. 이 정보는 어설션 클레임 중 사용자 ID의 일부로 전송됩니다.

IdP 애플리케이션 구성

이 섹션에서는 Google Cloud 직원 ID 제휴 및 Google SecOps와 통합하기 위해 IdP SAML 애플리케이션에 필요한 특정 구성에 대해서만 설명합니다. 자세한 단계는 IdP 문서를 참고하세요.

  1. IdP에 그룹이 아직 생성되지 않은 경우 그룹을 만듭니다.

    Google SecOps 인스턴스에 대한 액세스를 관리할 때는 개별 사용자 계정 대신 그룹을 사용하는 것이 좋습니다. Google에서는 기본 Google SecOps 역할에 직접 상응하는 그룹을 IdP에 만드는 것이 좋습니다.

    다음 예시를 참조하세요.

    Google SecOps 역할 IdP 그룹 (추천)
    Chronicle API 관리자 chronicle_secops_admins
    Chronicle API 편집자 chronicle_secops_editor
    Chronicle API 뷰어 chronicle_secops_viewer
  2. IdP에서 새로운 SAML 애플리케이션을 만듭니다.

  3. 다음과 같이 애플리케이션을 구성합니다.

    1. 서비스 제공업체에 따라 싱글 사인온(SSO) URL이라고도 부르는 어설션 소비자 서비스(ACS) URL을 지정합니다.

      https://auth.backstory.chronicle.security/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
      

      다음을 바꿉니다.

      • WORKFORCE_POOL_ID: 직원 ID 풀에 정의한 식별자입니다.
      • WORKFORCE_PROVIDER_ID: 직원 제공업체에 정의한 식별자입니다.

      값 설명은 직원 ID 풀 및 직원 프로바이더 정의를 참고하세요.

    2. 다음 엔티티 ID (SP 엔티티 ID라고도 함)를 지정합니다.

      https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_ID
      
    3. NameID 필드가 SAML 응답에 반환되도록 IdP에서 이름 식별자를 구성합니다.

      이메일 주소나 사용자 이름과 같이 조직 정책을 지원하는 값으로 설정할 수 있습니다. 이 값을 구성하는 방법에 관한 자세한 내용은 IdP 문서를 참고하세요. 이 요구사항에 대한 자세한 내용은 직원 ID 제휴 문제 해결하기를 참고하세요.

  4. IdP에서 애플리케이션 통합으로 사용자 정보를 전달할 수 있는 속성 문을 추가합니다. IdP 구현을 계획할 때 속성을 정의했습니다.

    예를 들어 다음 표에는 Okta, Microsoft AD FS, Entra ID와 같이 흔히 사용되는 IdP에서 추가할 수 있는 사용자 속성 문이 나열되어 있습니다.

    속성 이름 Okta 값 (표현식) AD FS / Entra ID (소스 속성)
    subject user.email user.mail 또는 user.userprincipalname
    emailaddress user.email user.mail
    first_name user.firstName user.givenname
    last_name user.lastName user.surname
    display_name user.displayName user.displayname

    Okta IdP 애플리케이션을 구성하는 경우 속성을 추가할 때 형식을 Unspecified로 선택해야 합니다. Microsoft AD FS 또는 Entra ID를 IdP로 사용하는 경우 네임스페이스를 비워 둡니다.

    선택적으로 IdP 애플리케이션에 groups와 같은 그룹 속성을 추가합니다.

  5. IdP 내에서 애플리케이션에 적절한 그룹과 사용자를 할당합니다.

    이러한 그룹과 사용자에게 Google SecOps 액세스 권한이 부여됩니다.

  6. 애플리케이션 메타데이터 XML 파일을 다운로드합니다.

    다음 섹션에서는 직원 ID 공급업체를 구성할 때 이 메타데이터 파일을 사용합니다. Google Cloud CLI를 사용하는 경우 Cloud Shell을 사용하여 로컬 시스템에서 Google Cloud 홈 디렉터리로 이 파일을 업로드해야 합니다.

직원 ID 제휴 구성

이 섹션에서는 이전 섹션에서 만든 IdP SAML 애플리케이션에 직원 ID 제휴를 구성하는 데 필요한 특정 단계에 대해서만 설명합니다. 직원 ID 풀 관리에 대한 자세한 내용은 직원 ID 풀 제공업체 관리를 참조하세요.

결제 및 할당량 프로젝트 설정

  1. Google SecOps에 바인딩된 프로젝트에서 필요한 권한이 있는 사용자로 Google Cloud 콘솔을 엽니다. 앞에서 이 사용자를 식별하거나 만들었습니다. 시작하기 전에 섹션을 참고하세요.

  2. Cloud Shell 세션을 실행합니다.

  3. gcloud CLI를 사용하여 수행된 작업에 대해 비용 및 할당량이 청구되는 Google Cloud 프로젝트를 설정합니다. 다음 gcloud 명령어를 예시로 사용하세요.

    gcloud config set billing/quota_project PROJECT_ID
    

    Google SecOps용 Google Cloud 프로젝트 구성에서 만든 Google SecOps에 바인딩된 프로젝트의 프로젝트 ID로 PROJECT_ID를 바꿉니다. 프로젝트를 식별하는 필드에 대한 설명은 프로젝트 만들기 및 관리를 참고하세요.

    할당량에 대한 자세한 내용은 다음 문서를 참조하세요.

    오류가 발생하면 할당량 오류 문제 해결하기를 참고하세요.

직원 ID 풀 만들기 및 구성

외부 ID 공급업체(IdP)나 Google Workspace 또는 Cloud ID와 통합하도록 직원 ID 풀을 구성할 수 있습니다.

콘솔

직원 ID 풀을 만들려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 직원 ID 풀 페이지로 이동합니다.

    직원 ID 풀로 이동

  2. 직원 ID 풀의 조직을 선택합니다. 직원 ID 풀은 조직 내 모든 프로젝트 및 폴더에서 사용할 수 있습니다.

  3. 풀 만들기를 클릭하고 다음을 수행합니다.

    1. 이름 필드에 풀의 표시 이름을 입력합니다. 풀 ID는 자동으로 입력한 이름에서 파생되며 이름 필드 아래에 표시됩니다. 풀 ID 옆에 있는 수정을 클릭하여 풀 ID를 업데이트할 수 있습니다.

    2. (선택사항) 설명에 풀 설명을 입력합니다.

  4. 다음을 클릭합니다.

직원 ID 풀의 세션 시간은 기본적으로 1시간입니다. 이 기간은 Google Cloud 액세스 토큰, Google Cloud 직원 ID 제휴 콘솔, gcloud CLI 로그인 세션의 유효성을 결정합니다. 풀을 업데이트하여 15분에서 12시간 사이의 맞춤 세션 시간을 설정할 수 있습니다.

gcloud

  1. 직원 ID 풀을 만듭니다.

    다음 gcloud 명령어를 예시로 사용하세요.

    gcloud iam workforce-pools create WORKFORCE_POOL_ID\
      --location="global" \
      --organization=ORGANIZATION_ID \
      --description="WORKFORCE_POOL_DESCRIPTION" \
      --display-name="WORKFORCE_POOL_DISPLAY_NAME" \
      --session-duration=SESSION_DURATION
    

    다음을 바꿉니다.

    • WORKFORCE_POOL_ID: 직원 ID 풀 ID에 대해 정의한 값입니다.
    • ORGANIZATION_ID: 숫자로 된 조직 ID
    • WORKFORCE_POOL_DESCRIPTION: 직원 ID 풀에 대한 선택사항 설명입니다.
    • WORKFORCE_POOL_DISPLAY_NAME: 직원 ID 풀의 선택사항 사용자 친화적인 이름입니다.
    • SESSION_DURATION: 세션 시간의 선택적 값으로, s이 추가된 숫자로 표현됩니다(예: 3600s). 이 기간은 Google Cloud액세스 토큰, Google Cloud 직원 ID 제휴 콘솔, gcloud CLI 로그인 세션의 유효성을 결정합니다. 풀을 업데이트하여 15분에서 12시간 사이의 맞춤 세션 시간을 설정할 수 있습니다.

    Google Workspace 또는 Cloud ID를 사용하여 Google SecOps에 로그인하려면 명령어에 --allowed-services domain=backstory.chronicle.security--disable-programmatic-signin 플래그를 추가합니다.

    gcloud iam workforce-pools create WORKFORCE_POOL_ID\
          --location="global" \
          --organization="ORGANIZATION_ID" \
          --description="WORKFORCE_POOL_DESCRIPTION" \
          --display-name="WORKFORCE_POOL_DISPLAY_NAME" \
          --session-duration=SESSION_DURATION \
          --allowed-services domain=backstory.chronicle.security \
          --disable-programmatic-signin
    

    이 명령어는 Google Cloud로그인을 지원하지 않는 직원 ID 풀을 만듭니다. 로그인 기능을 사용 설정하려면 각 시나리오에 적합한 플래그를 사용해야 합니다.

  2. Chronicle API를 사용 설정하라는 메시지가 표시되면 Yes를 입력합니다.

직원 ID 풀 공급업체 만들기

직원 ID 풀 제공업체는Google Cloud 조직과 IdP 사이의 관계를 설명합니다.

콘솔

직원 ID 풀 프로바이더를 구성하려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 직원 ID 풀 페이지로 이동합니다.

    직원 ID 풀로 이동

  2. 직원 ID 풀 표에서 공급업체를 만들 풀을 선택합니다.

  3. 공급업체 섹션에서 공급업체 추가를 클릭합니다.

  4. 제공업체 공급업체 선택에서 IdP를 선택합니다.

    IdP가 목록에 없으면 일반 ID 공급업체를 선택합니다.

  5. 인증 프로토콜 선택에서 SAML을 선택합니다.

  6. 공급업체 만들기 섹션에서 다음을 수행합니다.

    1. 이름에 공급업체 이름을 입력합니다.

    2. 선택사항: 설명에 공급업체에 대한 설명을 입력합니다.

    3. IDP 메타데이터 파일(XML)에서 이 가이드의 앞부분에서 생성한 메타데이터 XML 파일을 선택합니다.

    4. 공급업체 사용 설정이 사용 설정되어 있는지 확인합니다.

    5. 계속을 클릭합니다.

  7. Share your provider information(제공업체 정보 공유) 섹션에서 URL을 복사합니다. IdP에서 첫 번째 URL을 IdP에 애플리케이션을 식별하는 엔티티 ID로 구성합니다. 다른 URL을 리디렉션 URI로 구성하여 로그인 후 어설션 토큰을 전송할 위치를 IdP에 알립니다.

  8. 계속을 클릭합니다.

  9. 프로바이더 구성 섹션에서 다음을 수행합니다.

    1. 속성 매핑에서 해당 입력란에 매핑을 입력합니다. 예를 들면 다음과 같습니다.

      Google X (X는 숫자) SAML X (X는 숫자)
      google.subject assertion.subject
      google.groups assertion.attributes.groups
      google.display_name assertion.attributes.display_name[0]
      attribute.first_name assertion.attributes.first_name[0]
      attribute.last_name assertion.attributes.last_name[0]
      attribute.user_email assertion.attributes.emailaddress[0]
    2. 선택사항: IdP로 Microsoft Entra ID를 선택한 경우 다음을 수행하여 그룹 수를 늘릴 수 있습니다.

      1. 추가 속성 사용을 선택합니다.
      2. Extra Attributes Issuer URI(추가 속성 발급기관 URI) 필드에 발급기관 URL을 입력합니다.
      3. Extra Attributes Client ID(추가 속성 클라이언트 ID) 필드에 클라이언트 ID를 입력합니다.
      4. 추가 속성 클라이언트 보안 비밀번호 필드에 클라이언트 보안 비밀번호를 입력합니다.
      5. 추가 속성 유형 목록에서 추가 속성의 속성 유형을 선택합니다.
      6. 추가 속성 필터 필드에 Microsoft Graph API에 그룹을 쿼리할 때 사용되는 필터 표현식을 입력합니다.
    3. 선택사항: 속성 조건을 추가하려면 조건 추가를 클릭하고 속성 조건을 나타내는 CEL 표현식을 입력합니다. 예를 들어 ipaddr 속성을 특정 IP 범위로 제한하려면 assertion.attributes.ipaddr.startsWith('98.11.12.') 조건을 설정합니다. 이 예시의 조건은 IP 주소가 98.11.12.로 시작하는 사용자만 이 직원 공급업체를 사용하여 로그인할 수 있도록 합니다.

    4. 상세 감사 로깅을 사용 설정하려면 상세 로깅에서 속성 값 감사 로깅 사용 설정 전환 버튼을 클릭합니다.

  10. 제공업체를 만들려면 제출을 클릭합니다.

gcloud

직원 ID 풀 공급업체를 구성하려면 다음 단계를 따르세요.

  1. 더보기 >를 클릭하여 Cloud Shell 홈 디렉터리에 SAML 애플리케이션 메타데이터 파일을 업로드합니다. 홈 디렉터리에만 파일을 업로드할 수 있습니다. Cloud Shell과 로컬 워크스테이션 간에 파일을 전송하는 추가 옵션은 Cloud Shell에서 파일 및 폴더 업로드 및 다운로드를 참고하세요.

  2. Cloud Shell에서 SAML 애플리케이션 메타데이터 XML 파일을 다운로드한 디렉터리 경로를 기록해 둡니다. 다음 단계에서 이 경로가 필요합니다.

  3. 직원 ID 풀 제공업체를 만들고 IdP 세부정보를 지정합니다.

    다음 gcloud 명령어를 예시로 사용하세요.

    gcloud iam workforce-pools providers create-saml WORKFORCE_PROVIDER_ID \
      --workforce-pool="WORKFORCE_POOL_ID" \
      --location="global" \
      --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
      --description="WORKFORCE_PROVIDER_DESCRIPTION" \
      --idp-metadata-path=PATH_TO_METADATA_XML \
      --attribute-mapping="ATTRIBUTE_MAPPINGS"
    

    값에 대한 설명은 구현 계획을 참고하세요.

    다음을 바꿉니다.

    • WORKFORCE_PROVIDER_ID: 직원 제공업체 ID에 대해 정의한 값입니다.
    • WORKFORCE_POOL_ID: 직원 풀 ID에 대해 정의한 값입니다.
    • WORKFORCE_PROVIDER_DISPLAY_NAME: 직원 제공업체의 선택사항인 사용자 친화적인 이름입니다. 길이가 32자(영문 기준) 미만이어야 합니다.
    • WORKFORCE_PROVIDER_DESCRIPTION: 직원 프로바이더에 대한 선택사항 설명입니다.
    • PATH_TO_METADATA_XML: Cloud Shell을 사용하여 업로드한 애플리케이션 메타데이터 XML 파일의 Cloud Shell 디렉터리 위치입니다(예: /path/to/sso_metadata.xml).
    • ATTRIBUTE_MAPPINGS: 어설션 속성을 Google Cloud 속성에 매핑하는 방법에 대한 정의입니다. Common Expression Language는 이러한 매핑을 해석하기 위해 사용됩니다. 예를 들면 다음과 같습니다.

      google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.groups

    앞의 예시는 다음 속성을 매핑합니다.

    • assertion.subjectgoogle.subject에 매핑. 이는 최소 요구사항입니다.
    • assertion.attributes.name[0]google.display_name에 매핑
    • assertion.attributes.groupsgoogle.groups 속성에 매핑

    Google Security Operations SIEM 및 Google SecOps SOAR을 포함하여 Google Security Operations에 대해 이 구성을 수행하는 경우에는 Google SecOps SOAR에 필요한 다음 속성도 매핑해야 합니다.

    • attribute.first_name
    • attribute.last_name
    • attribute.user_email
    • google.groups
    • google.display_name

    따라서 전체 매핑은 다음과 같습니다.

    google.subject=assertion.subject,google.groups=assertion.attributes.groups,attribute.first_name=assertion.attributes.first_name[0],attribute.last_name=assertion.attributes.last_name[0],attribute.user_email=assertion.attributes.emailaddress[0],google.display_name=assertion.attributes.display_name[0]

    자세한 내용은 Google SecOps SOAR의 사용자 프로비저닝 및 매핑을 참고하세요.

    기본적으로 Google SecOps는 대소문자를 구분하지 않는 어설션 속성 이름인 _assertion.attributes.groups_, _assertion.attributes.idpGroup_, _assertion.attributes.memberOf_에서 그룹 정보를 읽습니다.

    어설션에서 그룹 멤버십 정보를 전달하도록 SAML 애플리케이션을 구성할 때는 그룹 속성 이름을 _group_, _idpGroup_, _memberOf_로 설정합니다.

    예시 명령어에서는 assertion.attributes.groupsassertion.attributes.idpGroup 또는 assertion.attributes.memberOf로 바꿀 수 있습니다. 이는 IdP SAML 애플리케이션에서 구성했고 어설션의 그룹 멤버십 정보를 포함하는 그룹 속성의 이름을 나타냅니다.

    다음 예시는 여러 그룹을 google.groups 속성에 매핑합니다.

    google.groups="(has(assertion.attributes.idpGroup) ? assertion.attributes.idpGroup : []) + (has(assertion.attributes.groups) ? assertion.attributes.groups : []) + (has(assertion.attributes.memberof) ? assertion.attributes.memberof : [])"

    다음 예시는 특수 문자가 포함된 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group 그룹을 google.groups에 매핑합니다.

    google.groups="assertion.attributes['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/group']"

    속성 매핑에 대한 자세한 내용은 속성 매핑을 참조하세요.

Google SecOps에 로그인할 수 있도록 역할 부여

다음 단계에서는 직원 ID 풀의 그룹과 사용자가 Google SecOps에 로그인할 수 있도록 IAM을 사용하여 특정 역할을 부여하는 방법을 설명합니다. 앞에서 만든 Google SecOps에 바인딩된 Google Cloud 프로젝트를 사용하여 구성을 수행합니다.

콘솔

  1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

    IAM으로 이동

  2. Google SecOps에 바인딩된 Google Cloud 프로젝트를 선택합니다.

  3. 보안 주체별로 보기 탭에서 액세스 권한 부여를 클릭합니다.

  4. 주 구성원 추가 섹션의 새 주 구성원 필드에 주 구성원 식별자를 입력합니다.

    예를 들면 다음과 같습니다.

    • 이전에 만든 직원 ID 풀 및 직원 프로바이더를 사용하여 관리되는 모든 ID를 추가하려면 다음을 입력합니다.

      principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID

    • 특정 그룹을 주 구성원으로 추가하려면 다음을 입력합니다.

      principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID

    다음을 바꿉니다.

    • WORKFORCE_POOL_ID: 직원 풀 ID에 대해 정의한 값입니다.
    • GROUP_ID: 매핑된 google.groups 클레임의 그룹 IdP에 이 그룹이 생성되어 있어야 합니다.
  5. 역할 할당 섹션에서 Chronicle API 뷰어 (roles/chronicle.viewer)와 같은 적절한 Chronicle API 역할을 선택하거나 검색합니다.

  6. 저장을 클릭합니다.

  7. 역할을 부여하려는 모든 주 구성원에 대해 3~5단계를 반복합니다.

gcloud

  1. Google SecOps 애플리케이션에 대해 액세스 권한을 가져야 하는 사용자 또는 그룹에 Chronicle API 뷰어 (roles/chronicle.viewer) 역할을 부여합니다.

    • 다음 예시에서는 이전에 만든 직원 ID 풀 및 직원 제공업체를 사용해서 관리되는 ID에 Chronicle API 뷰어 역할을 부여합니다.
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/*"
    

    다음을 바꿉니다.

    • PROJECT_ID: Google SecOps용 Google Cloud 프로젝트 구성에서 구성한 Google SecOps로 바인딩된 프로젝트의 프로젝트 ID로 바꿉니다. 프로젝트를 식별하는 필드에 대한 설명은 프로젝트 만들기 및 관리를 참고하세요.
    • WORKFORCE_POOL_ID: 직원 풀 ID에 대해 정의한 값입니다.

    • 특정 그룹에 Chronicle API 뷰어 역할을 부여하려면 다음 명령어를 실행합니다.

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role roles/chronicle.viewer \
      --member "principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    GROUP_ID를 매핑된 google.groups 클레임의 그룹으로 바꿉니다. IdP에 이 그룹이 생성되어 있어야 합니다.

  2. 조직의 요구사항을 충족하도록 추가 IAM 정책을 구성합니다.

  3. 필수: 인증을 완료하고 사용자가 Google SecOps 플랫폼에 액세스할 수 있도록 하려면 Google SecOps의 SOAR 측에서 사용자 액세스를 구성해야 합니다. 자세한 내용은 Google SecOps 플랫폼에서 사용자 매핑을 참고하세요.

이전 단계를 반복하여 다른 역할을 부여합니다.

Google SecOps 인스턴스에 SSO 구성

서드 파티 IdP를 Google SecOps와 통합하는 마지막 작업은 SSO를 구성하는 것입니다. 이 단계를 완료하면 사용자가 IdP 사용자 인증 정보를 사용하여 Google SecOps에 로그인할 수 있습니다.

SSO를 구성하는 단계는 다음과 같습니다.

  1. Google Cloud 콘솔에서 보안 > Google SecOps 페이지로 이동합니다.
  2. 싱글 사인온(SSO) 탭을 클릭한 다음 직원 ID 제휴를 선택합니다.
  3. 사용 가능한 공급업체 목록에서 직원 ID 풀 프로바이더 만들기에서 만든 직원 ID 제휴 프로바이더를 선택합니다.
  4. 저장을 클릭합니다.

직원 ID 제휴 구성 관리

이 섹션에서는 제공업체 설정을 업데이트하고 사용자 액세스 수준이 올바르게 구성되었는지 확인하는 방법을 설명합니다.

Google SecOps 기능 액세스 제어 확인 또는 구성

google.groups 속성에 매핑된 속성 또는 그룹을 사용하여 직원 ID 제휴를 구성한 경우 Google SecOps 기능에 대해 RBAC를 구성할 수 있도록 이 정보가 Google SecOps에 전달됩니다.

Google SecOps 인스턴스에 기존 RBAC 구성이 있으면 원래 구성이 예상한 대로 작동하는지 확인합니다.

이전에 액세스 제어를 구성하지 않은 경우 기능에 대한 액세스 제어에 대한 자세한 내용은 IAM을 사용하여 기능 액세스 제어 구성을 참조하세요.

직원 ID 제휴 구성 수정

직원 ID 풀 또는 직원 제공업체를 업데이트해야 하는 경우 구성 업데이트에 대한 자세한 내용은 직원 ID 풀 제공업체 관리를 참조하세요.

SAML 직원 풀 제공업체 만들기키 관리 섹션에서는 IdP 서명 키를 업데이트한 후 최신 애플리케이션 메타데이터 XML 파일을 사용해서 직원 제공업체 구성을 업데이트하는 방법을 설명합니다.

콘솔

특정 직원 풀을 업데이트하려면 다음 안내를 따르세요.

  1. 직원 ID 풀 페이지로 이동합니다.

    직원 ID 풀로 이동

  2. 테이블에서 풀을 선택합니다.

  3. 풀 파라미터를 업데이트합니다.

  4. 풀 저장을 클릭합니다.

공급업체를 업데이트하려면 다음 단계를 따르세요.

  1. 직원 ID 풀 페이지로 이동합니다.

    직원 ID 풀로 이동

  2. 표에서 제공업체를 업데이트하려는 풀을 선택합니다.

  3. 공급업체 표에서 수정을 클릭합니다.

  4. 제공업체 세부정보를 업데이트합니다.

  5. 업데이트된 제공업체 세부정보를 저장하려면 저장을 클릭합니다.

gcloud

다음은 직원 제공업체 구성을 업데이트하는 예시 gcloud 명령어입니다.

gcloud iam workforce-pools providers update-saml WORKFORCE_PROVIDER_ID \
  --workforce-pool=WORKFORCE_POOL_ID \
  --location="global" \
  --display-name="WORKFORCE_PROVIDER_DISPLAY_NAME" \
  --description="WORKFORCE_PROVIDER_DESCRIPTION" \
  --idp-metadata-path=PATH_TO_METADATA_XML \
  --attribute-mapping="ATTRIBUTE_MAPPINGS"

다음을 바꿉니다.

  • WORKFORCE_PROVIDER_ID: 직원 제공업체 ID에 대해 정의한 값입니다.
  • WORKFORCE_POOL_ID: 직원 풀 ID에 대해 정의한 값입니다.
  • WORKFORCE_PROVIDER_DISPLAY_NAME: 직원 제공업체에 대한 사용자 친화적인 이름입니다. 값은 32자 미만이어야 합니다.
  • WORKFORCE_PROVIDER_DESCRIPTION: 직원 제공업체에 대한 설명입니다.
  • PATH_TO_METADATA_XML: 업데이트된 애플리케이션 메타데이터 XML 파일의 위치입니다(예: /path/to/sso_metadata_updated.xml).
  • ATTRIBUTE_MAPPINGS: Google Cloud 속성에 매핑된 어설션 속성입니다. 예를 들면 다음과 같습니다.

google.subject=assertion.subject,google.display_name=assertion.attributes.name[0],google.groups=assertion.attributes.memberOf

구성 관련 문제 해결

이 프로세스 중에 문제가 발생하면 일반적인 문제 해결을 위해 직원 ID 제휴 문제 해결을 검토하세요. 다음 섹션에서는 이 문서의 단계를 수행할 때 발생할 수 있는 일반적인 문제들에 대한 정보를 제공합니다.

문제가 계속되면 Google SecOps 담당자에게 문의하고 Chrome 네트워크 로그 파일을 제공하세요.

명령어를 찾을 수 없음

직원 ID 풀 제공업체 만들기를 수행하고 IdP 세부정보를 지정할 때 다음 오류가 발생합니다.

Error: bash: --attribute-mapping=google.subject=assertion.subject,
google.display_name=assertion.attributes.name[0],
google.groups=assertion.attributes.groups: command not found

PATH_TO_METADATA_XML이 사용자가 Cloud Shell 홈 디렉터리에 SAML 애플리케이션 메타데이터 XML 파일을 업로드한 위치인지 확인합니다.

호출자에게 권한이 없습니다

gcloud projects add-iam-policy-binding 명령어를 사용해서 사용자 또는 그룹에 역할을 부여할 때 다음 오류가 발생합니다.

ERROR: (gcloud.organizations.add-iam-policy-binding) User [ ] does not have
permission to access organizations instance [538073083963:getIamPolicy]
(or it may not exist): The caller does not have permission

필요한 권한이 있는지 확인합니다. 자세한 내용은 필수 역할을 참조하세요.

인증 실패: 요청에 세션 ID가 누락됨

인증을 시도하면 브라우저에 다음 오류가 표시됩니다.

Verification failure: missing session ID in request

ACS 및 엔티티 ID 기본 URL이 올바른지 확인합니다. 자세한 내용은 IdP 애플리케이션 구성을 참고하세요.

다음 단계

이 문서의 단계를 완료한 후 다음을 수행합니다.

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.