사용자 그룹에 인증서 기반 액세스 적용

이 페이지에서는 사용자 그룹을 기반으로 하는 컨텍스트 인식 액세스 정책을 사용하여 인증서 기반 액세스(CBA)를 적용하는 방법을 설명합니다.

액세스를 제한할 사용자 그룹에 CBA 액세스 수준을 바인딩하여 모든 Google Cloud 서비스에 대한 액세스를 제한할 수 있습니다. 이 제한은 Google Cloud API를 호출하는 모든 클라이언트 애플리케이션에 적용됩니다.

원하는 경우 특정 클라이언트 애플리케이션에 제한사항을 적용하거나 특정 애플리케이션을 제외할 수 있습니다. 애플리케이션에는 서드 파티 애플리케이션과 Google에서 빌드한 퍼스트 파티 애플리케이션(예: Google Cloud 콘솔의 Cloud Console, Google Cloud CLIGoogle Cloud SDK)이 모두 포함됩니다.

시작하기 전에

리소스에 대한 액세스를 결정할 때 인증서가 필요한 CBA 액세스 수준을 만들었는지 확인합니다.

사용자 그룹 만들기

CBA 액세스 수준에 따라 액세스 권한을 부여해야 하는 구성원이 포함된 사용자 그룹을 만듭니다.

Cloud 액세스 바인딩 관리자 역할 할당

사용자 그룹에 Cloud 액세스 바인딩 관리자 역할을 할당합니다.

조직 수준에서 IAM 권한을 추가할 수 있는 충분한 권한으로 인증되었는지 확인합니다. 최소한 조직 관리자Cloud 액세스 바인딩 관리자 역할이 필요합니다.

콘솔

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

    IAM으로 이동

  2. 권한 탭에서 액세스 권한 부여를 클릭한 후 다음을 구성합니다.

    1. 새 주 구성원: 역할을 부여할 그룹을 지정합니다.
    2. 역할 선택 옵션에서 Access Context Manager > Cloud 액세스 바인딩 관리자를 선택합니다.
    3. 저장을 클릭합니다.

gcloud

  1. 로그인:

    gcloud auth login
    
  2. 다음 명령어를 실행하여 GcpAccessAdmin 역할을 할당합니다.

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID는 조직의 ID입니다. 아직 조직 ID가 없으면 다음 명령어를 사용하여 찾을 수 있습니다.

       gcloud organizations list
      
    • EMAIL은 역할을 부여할 사용자 또는 그룹의 이메일 주소입니다.

사용자 그룹에 CBA 액세스 수준 바인딩

이 바인딩 옵션에서 CBA 액세스 수준은 지정된 사용자 그룹의 모든 클라이언트 애플리케이션에 적용됩니다.

  1. 콘솔에서 Chrome Enterprise Premium 페이지로 이동합니다.

    Chrome Enterprise Premium으로 이동

  2. 조직을 선택하고 선택을 클릭합니다.

  3. 액세스 관리를 클릭하여 액세스 권한을 부여할 사용자 그룹을 선택합니다.

  4. 추가를 클릭하고 다음을 구성하세요.

    1. 구성원 그룹: 액세스 권한을 부여할 그룹을 지정합니다. 아직 액세스 수준에 결합되지 않은 그룹만 선택할 수 있습니다.
    2. 액세스 수준 선택: 그룹에 적용할 CBA 액세스 수준을 선택합니다.
    3. 저장을 클릭합니다.

사용자 그룹 및 특정 애플리케이션에 CBA 액세스 수준 바인딩

클라이언트 인증서를 지원하는 애플리케이션과 같은 일부 사용 사례에서는 CBA 액세스 수준을 사용자 그룹에 바인딩하는 것이 너무 광범위할 수 있습니다. 이 옵션을 사용하여 클라이언트 인증서를 지원하는 애플리케이션에 CBA 액세스 수준을 적용할 수 있습니다.

다음 예에서는 CBA 액세스 수준을 Google Cloud 콘솔, gcloud CLI, 사용자의 OAuth 애플리케이션에 바인딩합니다.

  1. gcloud CLI에 로그인.

    gcloud auth application-default login
    
  2. policy_file.json 파일을 만듭니다.

    OAuth 클라이언트 ID를 사용하여 애플리케이션을 지정할 수 있습니다. Google 애플리케이션을 지정하려면 Google Cloud 콘솔의 경우 Cloud Console과 같은 애플리케이션 이름을 사용하세요. Google Cloud 콘솔 및 Google Cloud SDK Google 애플리케이션만 지원됩니다.

    scopedAccessSettings:
    - scope:
        clientScope:
          restrictedClientApplication:
            name: Cloud Console
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            name: Google Cloud SDK
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            clientId: CLIENT_ID_1
      activeSettings:
        accessLevels:
        - CBA_ACCESS_LEVEL
    

    다음을 바꿉니다.

    • CLIENT_ID_1: OAuth 클라이언트 ID입니다.
    • CBA_ACCESS_LEVEL: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 CBA 액세스 수준 이름입니다.
  3. CBA 액세스 수준 바인딩을 만듭니다.

    gcloud access-context-manager cloud-bindings create \
      --group-key='GROUP_KEY' \
      --organization='ORG_ID' \
      --binding-file=.../policy_file.json

    GROUP_KEY를 컨텍스트 인식 액세스 그룹으로, ORG_ID를 조직 ID로 바꿉니다.

    사용 가능한 GROUP_KEY가 없는 경우 그룹 리소스의 get 메서드를 호출하여 검색할 수 있습니다.

  4. (선택사항) 기존 액세스 수준 바인딩을 업데이트합니다.

    gcloud access-context-manager cloud-bindings update \
      --binding='BINDING_NAME' \
      --binding-file=.../policy_file.json

    BINDING_NAME을 바인딩이 생성될 때 자동으로 생성된 바인딩 이름으로 바꿉니다.

애플리케이션을 바인딩에서 제외

클라이언트 인증서를 지원하지 않는 클라이언트 애플리케이션을 차단하지 않고 CBA 액세스 수준을 적용하는 또 다른 방법은 이러한 애플리케이션을 정책에서 제외하는 것입니다.

다음 단계에서는 리소스에 대한 액세스를 결정할 때 인증서가 필요한 CBA 액세스 수준을 만들었음을 가정합니다.

  1. 다음 방법 중 하나를 사용하여 예외 액세스 수준을 만듭니다.

  2. exemption_file.json 파일을 만듭니다.

    scopedAccessSettings:
    - scope:
        clientScope:
          restrictedClientApplication:
            clientId: CLIENT_ID_2
      activeSettings:
        accessLevels:
        - EXEMPT_ACCESS_LEVEL
    - scope:
        clientScope:
          restrictedClientApplication:
            name: APPLICATION_NAME_2
      activeSettings:
        accessLevels:
        - EXEMPT_ACCESS_LEVEL
    

    다음을 바꿉니다.

    • CLIENT_ID_2: OAuth 클라이언트 ID입니다.
    • APPLICATION_NAME_2: 애플리케이션 이름입니다.
    • EXEMPT_ACCESS_LEVEL: accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식의 예외 액세스 수준 이름입니다.
  3. 예외 바인딩 정책을 만듭니다.

    gcloud access-context-manager cloud-bindings create \
      --group-key='GROUP_KEY' \
      --organization='ORG_ID' \
      --binding-file=.../exemption_file.json

    GROUP_KEY를 컨텍스트 인식 액세스 그룹으로, ORG_ID를 조직 ID로 바꿉니다.

    사용 가능한 GROUP_KEY가 없는 경우 그룹 리소스의 get 메서드를 호출하여 검색할 수 있습니다.