네임스페이스 서비스 계정으로 액세스 제어

이 페이지에서는 Cloud Data Fusion 인스턴스에서 네임스페이스에 Identity and Access Management(IAM) 서비스 계정을 구성하는 방법을 설명합니다.

Cloud Data Fusion의 네임스페이스 정보

네임스페이스는 Cloud Data Fusion 인스턴스의 애플리케이션, 데이터, 연결된 메타데이터를 논리적으로 그룹화한 것입니다. 네임스페이스는 인스턴스의 파티셔닝이라고 생각할 수 있습니다. 여기서 항목이라고 하는 모든 애플리케이션 또는 데이터는 여러 네임스페이스에 독립적으로 존재할 수 있습니다. 단일 인스턴스에서 하나의 네임스페이스는 다른 네임스페이스와는 별개로 항목의 데이터와 메타데이터를 저장합니다.

네임스페이스 서비스 계정으로 액세스 제어

Google Cloud 리소스에 대한 액세스를 제어하기 위해 Cloud Data Fusion의 네임스페이스는 기본적으로 Cloud Data Fusion API 서비스 에이전트를 사용합니다.

더 나은 데이터 격리를 위해 맞춤설정된 IAM 서비스 계정(네임스페이스 서비스 계정별이라고 함)을 각 네임스페이스와 연결할 수 있습니다. 네임스페이스마다 다를 수 있는 맞춤설정된 IAM 서비스 계정을 사용하면 Cloud Data Fusion에서 파이프라인 설계 시간 파이프라인 작업(예: 파이프라인 미리보기, Wrangler, 파이프라인 유효성 검사)의 네임스페이스 간 Google Cloud 리소스에 대한 액세스를 제어할 수 있습니다.

시작하기 전에

  • 네임스페이스별 서비스 계정은 Cloud Data Fusion 버전 6.10.0 이상의 RBAC가 사용 설정된 인스턴스에서 지원됩니다.
  • 네임스페이스별 서비스 계정은 Google Cloud 리소스에 대한 액세스를 제어하고 관리하는 데 사용됩니다.

필수 역할 및 권한

네임스페이스 서비스 계정을 맞춤설정하고 네임스페이스 내에서 사용자 권한을 부여하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트의 Cloud Data Fusion 인스턴스에 대한 Cloud Data Fusion 관리자(roles/datafusion.admin) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

네임스페이스 사용자의 권한 관리

사용자에게 네임스페이스에서 필요한 권한을 부여하려면 사전 정의된 Cloud Data Fusion 역할을 부여합니다. 자세한 내용은 RBAC가 사용 설정된 인스턴스의 사용자에게 제공되는 사전 정의된 Cloud Data Fusion 역할을 참조하세요.

네임스페이스 서비스 계정 구성

콘솔

네임스페이스의 서비스 계정을 구성하려면 다음 단계를 따르세요.

  1. 네임스페이스에 기존 서비스 계정이 없는 경우 서비스 계정을 만듭니다.
  2. Google Cloud 콘솔에서 Cloud Data Fusion 인스턴스 페이지로 이동하고 Cloud Data Fusion 웹 인터페이스에서 인스턴스를 엽니다.

    인스턴스로 이동

  3. 시스템 관리자 > 구성 > 네임스페이스를 클릭합니다.

  4. 구성하려는 네임스페이스를 클릭합니다.

  5. 서비스 계정 탭을 클릭한 다음 서비스 계정 추가를 클릭합니다.

    서비스 계정 추가 버튼

  6. 워크로드 아이덴티티 사용자 역할(roles/iam.workloadIdentityUser)을 부여합니다.

    역할을 부여하려면 다음 단계를 따르세요.

    1. 파이프라인 설계 서비스 계정 필드에 서비스 계정 이메일(예: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com)을 입력합니다.
    2. 표시되는 대화상자의 안내를 따릅니다.
  7. 서비스 계정 구성을 완료하려면 Cloud Data Fusion 인스턴스의 네임스페이스로 돌아가서 저장을 클릭합니다.

  8. 단계를 반복하여 각 네임스페이스에 대해 서비스 계정을 구성합니다.

REST API

  1. 워크로드 아이덴티티 사용자 역할(roles/iam.workloadIdentityUser)을 부여합니다.

    역할을 부여하려면 다음 단계를 따르세요.

    1. 다음 환경 변수를 설정합니다.

      export TENANT_PROJECT_ID=TENANT_PROJECT
      export GSA_PROJECT_ID=SERVICE_ACCOUNT_PROJECT
      

      다음을 바꿉니다.

      • TENANT_PROJECT: 테넌트 프로젝트 ID. 이를 찾으려면 인스턴스 페이지로 이동하여 인스턴스 이름을 클릭합니다. 인스턴스 세부정보 페이지에 ID가 표시됩니다.

        인스턴스로 이동

      • SERVICE_ACCOUNT_PROJECT: IAM 서비스 계정이 있는 Google Cloud 프로젝트 ID

    2. 워크로드 아이덴티티 사용자 역할 부여:

      gcloud iam service-accounts add-iam-policy-binding \
          --role roles/iam.workloadIdentityUser
          --member "serviceAccount:${TENANT_PROJECT_ID}.svc.id.goog[default/NAMESPACE_IDENTITY]" SERVICE_ACCOUNT_EMAIL \
          --project ${GSA_PROJECT_ID}
      

      다음을 바꿉니다.

      • NAMESPACE_IDENTITY: 네임스페이스의 ID. 자세한 내용은 네임스페이스 세부정보를 참조하세요.

      • SERVICE_ACCOUNT_EMAIL: 서비스 계정의 이메일 주소(예: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com).

  2. 이전 단계의 네임스페이스 서비스 계정 이메일을 검증합니다. environment variables를 설정한 후 다음 명령어를 실행합니다.

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity/validate -X POST -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    다음을 바꿉니다.

    • NAMESPACE_NAME: 네임스페이스의 ID
    • SERVICE_ACCOUNT_EMAIL: 네임스페이스에 설정할 IAM 서비스 계정 이메일
  3. 네임스페이스 서비스 계정을 설정합니다. environment variables를 설정한 후 다음 명령어를 실행합니다.

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

네임스페이스 서비스 계정 수정

콘솔

네임스페이스 서비스 계정을 수정하려면 다음 단계를 수행합니다.

  1. Cloud Data Fusion 인스턴스에서 시스템 관리자 > 구성 > 네임스페이스를 클릭합니다.
  2. 수정하려는 서비스 계정이 있는 네임스페이스를 클릭합니다.
  3. 서비스 계정을 수정하려면 서비스 계정 탭으로 이동합니다. 서비스 계정 이름 옆에 있는 메뉴 > 수정을 클릭합니다.
  4. 단계에 따라 네임스페이스 서비스 계정 구성을 수행합니다.

REST API

네임스페이스 서비스 계정을 수정하려면 다음 단계를 수행합니다.

  1. environment variables를 설정한 후 다음 명령어를 실행합니다.

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
     ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
    

    다음을 바꿉니다.

    • NAMESPACE_NAME: 네임스페이스의 ID
    • SERVICE_ACCOUNT_EMAIL: 네임스페이스에 설정할 IAM 서비스 계정 이메일

네임스페이스 서비스 계정 삭제

콘솔

네임스페이스에서 네임스페이스 서비스 계정을 삭제하려면 다음 단계를 따르세요.

  1. Cloud Data Fusion 인스턴스에서 시스템 관리자 > 구성 > 네임스페이스를 클릭합니다.
  2. 삭제하려는 서비스 계정이 있는 네임스페이스를 클릭합니다.
  3. 서비스 계정을 삭제하려면 서비스 계정 탭으로 이동합니다. 서비스 계정 이름 옆에 있는 메뉴 > 삭제를 클릭합니다.

REST API

네임스페이스에서 네임스페이스 서비스 계정을 삭제하려면 다음 단계를 따르세요.

  1. environment variables를 설정한 후 다음 명령어를 실행합니다.

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X DELETE
    

    다음을 바꿉니다.

    • NAMESPACE_NAME: 네임스페이스의 ID

네임스페이스 서비스 계정 가져오기

콘솔

네임스페이스의 서비스 계정 정보를 가져오려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 Cloud Data Fusion 인스턴스 페이지로 이동하고 Cloud Data Fusion 웹 인터페이스에서 인스턴스를 엽니다.

    인스턴스로 이동

  2. 시스템 관리자 > 구성 > 네임스페이스를 클릭합니다.

  3. 네임스페이스 이름을 클릭하여 서비스 계정 세부정보를 확인합니다.

REST API

네임스페이스 서비스 계정 이름을 가져오려면 다음 단계를 따르세요.

  1. environment variables를 설정한 후 다음 명령어를 실행합니다.

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X GET
    

    다음을 바꿉니다.

    • NAMESPACE_NAME: 네임스페이스의 ID

    성공하면 다음 응답에서 서비스 계정 이메일을 확인할 수 있습니다.

    Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
    

다음 단계