Google Cloud Console 및 Google Cloud APIs 보안

Cloud Console 및 Google Cloud API의 컨텍스트 인식 액세스는 컨텍스트 기반 규칙이 있는 Cloud Console 및 Google Cloud API에 대한 액세스를 제한합니다. 기존 BeyondCorp Enterprise 제품군(Endpoint Verification 및 Access Context Manager)을 기반으로 하며 정의된 액세스 요구사항을 충족하는 조직의 개인과 그룹이 Cloud Console과 Google Cloud APIs(gcloud 명령줄 도구 사용 포함)에 액세스할 수 있도록 보장합니다.

이 기능은 다음 단계에 따라 설정할 수 있습니다.

  1. [선택사항] 조직의 기기에 Endpoint Verification을 배포합니다.
  2. Access Context Manager에서 액세스 수준을 만듭니다.
  3. BeyondCorp Enterprise 제한사항을 적용할 사용자 그룹을 만듭니다.
  4. 필요한 ID 및 액세스 관리 권한을 얻습니다.
  5. Cloud Console 및 Google Cloud APIs에 대한 컨텍스트 인식 규칙을 적용하는 액세스 binding을 만듭니다.

[선택사항] Endpoint Verification 배포

Endpoint Verification을 사용하면 조직의 데이터에 액세스하는 기기의 인벤토리를 빌드할 수 있습니다. 또한 BeyondCorp Enterprise 솔루션의 일부로 중요한 기기 신뢰 및 보안 기반 액세스 제어를 제공하며 Google Cloud 리소스에 대한 세분화된 액세스 제어를 적용할 수 있습니다.

Endpoint Verification은 Mac, Windows, Linux 사용자를 위한 데스크톱 및 노트북의 Chrome 확장 프로그램으로 실행됩니다. Google Workspace 관리 콘솔에서 조직의 회사 소유 기기에 관리자가 배포하거나 조직 구성원이 직접 설치할 수 있습니다.

액세스 수준 만들기

Access Context Manager에서 기본 액세스 수준을 만들어 Cloud Console 및 Google Cloud APIs에 대한 액세스 권한을 결정할 때 사용할 액세스 수준을 정의해야 합니다.

사용자 그룹 만들기

컨텍스트 인식 제한사항이 적용되어야 하는 사용자 그룹을 만듭니다. 조직의 구성원이기도 한 이 그룹의 모든 사용자는 Cloud Console 및 Google Cloud APIs에 액세스하려면 이전에 만든 액세스 수준을 충족해야 합니다.

필수 IAM 권한 부여

Access Context Manager 액세스 binding을 만드는 데 필요한 조직 수준에서 IAM 권한을 부여합니다.

Console

  1. Cloud Console에서 IAM 및 관리자 페이지로 이동합니다.

    IAM 및 관리자로 이동

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

    • 새 구성원: 권한을 부여할 사용자 또는 그룹을 지정합니다.
    • 역할 선택: Access Context Manager > Cloud 액세스 binding 관리자를 선택합니다.
  3. 저장을 클릭합니다.

gcloud

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

    올바른 권한이 있음을 확인한 후 다음으로 로그인합니다.

    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은 역할을 부여할 사용자 또는 그룹의 이메일 주소입니다.

액세스 binding 만들기

이제 이전에 만든 사용자 그룹과 Cloud Console 및 Google Cloud APIs에 액세스하기 위해 정의한 Access Context Manager 액세스 수준 사이의 매핑인 액세스 binding을 만들 수 있습니다.

Console

  1. Cloud Console에서 BeyondCorp Enterprise 페이지로 이동합니다.

    BeyondCorp Enterprise로 이동

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

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

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

    • 구성원 그룹: 액세스 권한을 부여할 그룹을 지정합니다. 이미 액세스 수준에 결합되지 않은 그룹만 선택할 수 있습니다.
    • 액세스 수준 선택: 그룹에 적용할 액세스 수준을 선택합니다.
  5. 저장을 클릭합니다.

gcloud

추가 플래그 옵션을 포함하여 이 명령어 및 다른 gcloud access-context-manager cloud-bindings 명령어에 대한 자세한 내용은 Cloud SDK를 참조하세요.

gcloud access-context-manager cloud-bindings create \
    --group-key GROUP_ID \
    --level ACCESS_LEVEL \
    --organization ORG_ID
  • GROUP_ID이전에 만든 사용자 그룹의 그룹 ID로 바꿉니다.

  • ACCESS_LEVELaccessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식입니다. POLICY_IDACCESS_LEVEL_NAME의 값은 액세스 수준을 만들 때 Access Context Manager에서 확인할 수 있습니다.

  • access-context-manager/organization 속성이 미리 설정되지 않은 경우 선택사항인 --organization 플래그의 ORG_IDGcpAccessAdmin 역할을 만들 때 사용한 조직의 ID로 바꿉니다.

API

  1. 요청 본문을 작성합니다.

    {
      "groupKey": "GROUP_ID",
      "accessLevels": [ "ACCESS_LEVEL" ]
    }
    
    • GROUP_ID이전에 만든 사용자 그룹의 그룹 ID로 바꿉니다.

    • ACCESS_LEVELaccessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME 형식입니다. POLICY_IDACCESS_LEVEL_NAME의 값은 액세스 수준을 만들 때 Access Context Manager에서 확인할 수 있습니다.

  2. gcpUserAccessBindings 엔드포인트를 호출하고 ORG_IDGcpAccessAdmin 역할을 만들 때 사용한 조직의 ID로 바꿔 액세스 binding을 만듭니다.

    POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
    

    그러면 GcpUserAccessBinding 리소스가 응답으로 반환되며 형식은 다음과 같습니다.

    {
      // Unique name for the access binding, in the form
      // "organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID"
      name: string,
    
      // Unique Group ID.
      group_key: string,
    
      // The access level that users of the group must satisfy, in the form
      // "accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME"
      access_levels: [ string ]
    }
    

성공 여부 확인

사용자 그룹에 액세스 binding이 설정되면 binding 액세스 수준의 만족도를 기준으로 Cloud Console 및 Google Cloud APIs에 대한 액세스를 제어해야 합니다.

binding이 만들어졌는지 확인하거나 수정하거나 삭제할 수 있습니다.

Console

액세스 binding을 만들면 조직의 모든 액세스 binding이 표시되고 필요에 따라 수정 또는 삭제할 수 있습니다.

gcloud

  • 조직의 모든 액세스 binding을 보려면 다음 안내를 따르세요.

    gcloud access-context-manager cloud-bindings list \
        --organization ORG_ID
    

    access-context-manager/organization 속성이 미리 설정되지 않은 경우 선택사항인 --organization 플래그의 ORG_IDGcpAccessAdmin 역할을 만들 때 사용한 조직의 ID로 바꿉니다.

  • 액세스 binding을 수정하려면(예: 액세스 수준 변경) 다음 안내를 따르세요.

    gcloud access-context-manager cloud-bindings update \
        --binding ACCESS_BINDING \
        --level ACCESS_LEVEL
    

    ACCESS_BINDINGorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME으로 바꿉니다. 여기서 ORG_IDGcpAccessAdmin 역할을 만들 때 사용한 조직의 ID이고 ACCESS_BINDING_NAME은 액세스 binding이 만들어졌을 때 name 식별자에 반환된 고유 문자열입니다.

    ACCESS_LEVEL 값은 리소스의 binding을 만든 때와 같이 형식을 지정해야 합니다.

  • 특정 액세스 binding을 삭제하려면 다음 안내를 따르세요.

    gcloud access-context-manager cloud-bindings delete \
        --binding ACCESS_BINDING
    

    액세스 binding 수정에 설명된 대로 동일한 방식으로 ACCESS_BINDING의 값 형식을 지정합니다.

API

  • 조직의 모든 액세스 binding을 보려면 다음 안내를 따르세요.

    GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
    

    그러면 GcpUserAccessBinding 리소스 목록이 반환됩니다.

  • 액세스 수준 변경과 같은 액세스 binding을 수정하려면 변경사항을 정의하는 요청 본문을 만든 다음 리소스의 이름을 사용하여 엔드포인트를 호출합니다.

    {
      "accessLevels": [ "ACCESS_LEVEL" ]
    }
    

    리소스에 대한 binding을 만든 때와 같이 ACCESS_LEVEL 값의 형식을 지정합니다.

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels
    

    ACCESS_BINDING_NAME을 액세스 binding이 만들어졌을 때 name 식별자에 반환된 고유한 문자열로 바꿉니다.

  • 특정 GcpUserAccessBinding 리소스를 삭제하려면 리소스의 이름으로 엔드포인트를 호출합니다.

    DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
    

    ACCESS_BINDING_NAME을 액세스 binding이 만들어졌을 때 name 식별자에 반환된 고유한 문자열로 바꿉니다.

자주 묻는 질문(FAQ)

  • 새로 생성된 액세스 binding이 적용되는 데 얼마나 걸리나요?

    최대 24시간이 걸릴 수 있습니다.

  • 액세스 binding이 있는 그룹을 삭제하면 어떻게 되나요?

    그룹과 binding이 삭제되고 그룹의 모든 사용자에게 액세스가 허용됩니다.

  • 액세스 binding에 사용된 액세스 수준을 삭제하면 어떻게 되나요?

    액세스 수준은 충족될 수 없으며 binding 그룹의 모든 사용자가 거부됩니다.

  • 사용자가 액세스 binding이 있는 여러 그룹에 속한 경우 어떻게 되나요?

    사용자는 해당 그룹 중 하나의 액세스 수준만 충족해도 액세스 권한이 부여됩니다.

  • 내 조직에 속하지 않은 사용자는 어떻게 되나요?

    조직에 속하지 않은 사용자는 컨텍스트 인식 제한사항을 적용할 사용자 그룹에 추가되더라도 액세스 binding이 적용되지 않습니다.

다음 단계

  • BeyondCorp Enterprise의 감사 로그에 대한 자세한 내용은 감사 로깅을 참조하세요.
  • 관리자 작업에 대해 로깅되는 API 작업의 요약을 포함하여 Admin Context Manager의 감사 로깅에 대한 자세한 내용은 Access Context Manager 감사 로깅 정보를 참조하세요.