데이터 상주로 조직 프로비저닝

이 문서에서는 저장 데이터에만 데이터 상주 또는 고급 데이터 상주를 사용하여 Apigee 조직을 프로비저닝하는 방법을 설명합니다.

데이터 상주 소개도 참고하세요.

저장 데이터의 데이터 상주만으로 조직 프로비저닝

Apigee 관리자는 저장 데이터만 데이터 상주를 사용하여 조직을 프로비저닝하고 데이터가 저장되는 위치를 제한하려면 사용 가능한 유료 조직 프로비저닝 옵션 중 하나를 사용하세요. 프로비저닝 중에 데이터 상주 사용 설정 체크박스를 선택해야 합니다.

고급 데이터 상주로 조직 프로비저닝

Apigee 관리자는 데이터 저장 (저장), 처리 (사용 중), 전송 (전송 중)을 비롯한 고급 데이터 상주로 조직을 프로비저닝하려면 다음 단계를 따라야 합니다.

# 단계 설명 연주자
1 Assured Workloads 폴더 만들기 Google Cloud 조직에 Assured Workloads 폴더를 만들어 허용된 위치에서만 리소스 사용을 제한하는 필수 조직 정책을 설정하고 적용합니다. Assured Workloads 관리 권한이 있는Google Cloud 관리자
2 고급 데이터 상주로 프로비저닝 사용 가능한 유료 조직 프로비저닝 옵션 중 하나를 사용하여 고급 데이터 상주로 유료 조직을 프로비저닝합니다.

컨트롤 플레인 위치에 따라 관할권 콘솔을 사용하여 Apigee UI에 액세스하거나 리전 엔드포인트를 사용하여 Apigee API에 액세스해야 합니다.

Apigee 조직 관리자

Assured Workloads 폴더 만들기

참고: Assured Workloads 폴더를 설정하려면 Assured Workloads 관리 권한이 있는 Google Cloud 관리자여야 합니다.

Assured Workloads를 사용하면 조직에서 Google Cloud 리소스에 규제, 리전, 주권 제어를 적용하고 시행할 수 있습니다.

Google Cloud 콘솔을 사용하여 Google Cloud 조직에 Assured Workloads 폴더를 만들고 규정 요구사항에 따라 제어 패키지를 선택합니다. 제어 패키지는 규정 준수 프레임워크, 법규 또는 규제의 기준을 지원하는 제어 집합입니다. 제어 패키지는 다음을 위해 필요한 조직 정책 제약 조건을 설정하고 시행합니다.

  • 지원되는 제품으로만 리소스 사용량 제한
  • 허용된 위치에서만 리소스 생성 또는 사용 허용

Assured Workloads에 대한 자세한 내용은 Assured Workloads 개요를 참고하세요.

고급 데이터 상주로 프로비저닝

참고: 고급 데이터 상주를 사용하여 유료 조직을 프로비저닝하려면 Apigee 조직 관리자여야 합니다.

Apigee 관리자는 프로비저닝 옵션 중 하나를 사용하여 유료 조직을 프로비저닝할 때 관할권 콘솔을 사용하여 Apigee UI에 액세스하거나 CLI를 사용할 때 리전 엔드포인트에 액세스해야 합니다.

관할권 콘솔 사용

고급 데이터 상주로 조직을 프로비저닝할 때는 위치 기반 관할권 콘솔을 사용하여 Apigee UI에 액세스해야 합니다. 관할권 콘솔을 사용하여 Apigee 조직을 프로비저닝하면 다음 필드가 자동으로 구성됩니다.

  • 데이터 상주 사용 설정이 선택되어 있으며 선택 해제할 수 없습니다.
  • 컨트롤 플레인 호스팅 관할권 옵션은 사용 중인 관할권 콘솔에 따라 필터링됩니다.
  • 다른 모든 지역 선택기는 선택한 컨트롤 플레인 호스팅 관할권 내의 위치만 표시하도록 필터링됩니다.

관할권 콘솔에 액세스하는 방법에 대한 자세한 내용은 관할권 Google Cloud 콘솔Assured Workloads의 공유 책임을 참고하세요.

리전 엔드포인트 사용

고급 데이터 상주로 조직을 프로비저닝할 때는 다음 리전 엔드포인트를 사용하세요.

apigee.CONTROL_PLANE_LOCATION.rep.googleapis.com

여기에서 CONTROL_PLANE_LOCATION은 Apigee 컨트롤 플레인 데이터가 저장되는 물리적 위치입니다. 사용 가능한 컨트롤 플레인 위치 목록은 고급 데이터 상주를 위해 리전 엔드포인트 사용을 참고하세요.

프로비저닝 중에 적절한 값을 선택해야 합니다. 시행 중인 조직 정책에 의해 금지된 위치를 사용하면 Permission Denied 오류가 표시됩니다.

예를 들어 다음 명령어는 CMEK가 사용 설정된 미국 리전에 Apigee 조직을 만듭니다. Apigee organizations API도 참고하세요.

curl "https://apigee.us.rep.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \
  -X POST
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "$PROJECT_ID",
    "runtimeType": "CLOUD", # Hybrid organizations aren't supported
    "billingType": "$BILLING_TYPE", # Eval organizations aren't supported
    "controlPlaneEncryptionKeyName" : "'"$CONTROL_PLANE_KEY_ID"'",
    "apiConsumerDataLocation" : "'"$CONSUMER_DATA_REGION"'",  # Must be single region in US
    "apiConsumerDataEncryptionKeyName" : "'"$CONSUMER_DATA_KEY_ID"'",
    "authorizedNetwork" : "'"$NETWORK_NAME"'", # Must be created in the US region
    "runtimeDatabaseEncryptionKeyName" : "'"$RUNTIMEDB_KEY_ID"'"
  }'

gcloud CLI를 사용하여 외부 보호 수준으로 CMEK 키를 만드는 방법

EU 지역에서 고급 데이터 저장 위치를 사용하여 Apigee 조직을 프로비저닝할 때는 외부 보호 수준으로 고객 관리 암호화 (CMEK) 키를 만들어야 합니다. EU 관할 콘솔에서는 외부 지원 CMEK 키 설정을 지원하지 않으므로 Google Cloud CLI를 사용하여 CMEK 키를 만들어야 합니다. 또한 외부 키 관리자 (EKM)를 설정해야 합니다.

CMEK 키를 만들고 EKM을 설정하려면 다음 섹션에 설명된 단계를 따르세요.

EKM 설정

EU 리전에 생성된 CMEK 키는 외부 보호 수준으로 생성되어야 하므로 EKM을 설정해야 합니다. EKM을 설정하려면 다음 섹션에 제공된 안내를 따르세요.

EU 리전의 CMEK 키 만들기

아래 설명된 gcloud CLI 명령어를 사용하여 EU 리전에 필요한 다음 CMEK 키를 만듭니다.

  • 컨트롤 플레인 암호화 키
  • API 소비자 데이터 암호화 키
  • 런타임 데이터베이스 암호화 키
  • 런타임 디스크 암호화 키

CMEK 키 만들기에 대한 자세한 내용은 Apigee 암호화 키 정보를 참고하세요.

다음 단계를 반복하여 필요한 각 CMEK 키를 만듭니다.

  1. 다음 명령어를 사용하여 EU 리전에 키링을 만듭니다.
    gcloud kms keyrings create DATA_KEY_RING \
          --location LOCATION \
          --project=PROJECT_ID
        
  2. 다음 명령어를 사용하여 외부 키를 만듭니다.
    gcloud kms keys create DATA_KEY_NAME \
          --keyring=DATA_KEY_RING \
          --location LOCATION \
          --purpose encryption \
          --protection-level external \
          --skip-initial-version-creation \
          --default-algorithm external-symmetric-encryption \
          --project PROJECT_ID
        
  3. 다음 명령어를 사용하여 이전 단계에서 설정한 EKM을 가리키는 키 버전을 만듭니다.
    gcloud kms keys versions create \
      --key DATA_KEY_NAME \
      --keyring DATA_KEY_RING \
      --location LOCATION \
      --external-key-uri "EKM_URI" \
      --primary \
      --project PROJECT_ID
        
  4. 다음 명령어를 사용하여 Apigee 서비스 에이전트에 권한을 부여합니다.
    gcloud kms keys add-iam-policy-binding DATA_KEY_NAME \
          --location LOCATION \
          --keyring DATA_KEY_RING \
          --member serviceAccount:service-$(gcloud projects describe $project --format="value(projectNumber)")@gcp-sa-apigee.iam.gserviceaccount.com \
          --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
          --project PROJECT_ID
        

각 항목의 의미는 다음과 같습니다.

  • DATA_KEY_RING: 컨트롤 플레인, API 소비자 데이터, 런타임 데이터베이스 또는 런타임 디스크 키링의 이름입니다.
  • DATA_KEY_NAME: 컨트롤 플레인, API 소비자 데이터, 런타임 데이터베이스 또는 런타임 디스크 키의 이름입니다.
  • LOCATION: 키링의 Cloud KMS 위치입니다. 이 값을 다음과 같이 설정합니다.
    • 컨트롤 플레인 암호화 키의 경우 다음 멀티 리전 키 중 하나로 설정합니다. us 또는 europe
    • API 소비자 데이터 암호화 키, 런타임 데이터베이스 암호화 키, 런타임 디스크 암호화 키의 경우 europe-* 또는 us-*과 같은 단일 리전 키 중 하나로 설정합니다. 예를 들면 europe-west1, us-central1 등입니다.
  • EKM_URI: EKM URI입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.

리전 엔드포인트를 사용하도록 gcloud CLI 구성 (선택사항)

gcloud CLI를 사용하여 Apigee 조직을 관리할 수 있습니다. 대부분의 조직에서 gcloud CLI는 적절한 리전 엔드포인트를 자동으로 감지합니다. Apigee 조직 이름이 Google Cloud 프로젝트 이름과 일치하는 경우 원활하게 작동합니다.

하지만 이름이 일치하지 않는 경우도 있습니다. 예를 들어 Apigee 조직을 한 Google Cloud 프로젝트에서 다른 프로젝트로 이전한 경우 Apigee 조직의 이름과 Google Cloud 프로젝트의 이름이 다를 수 있습니다. 이 경우 gcloud CLI를 사용할 때 다음 중 하나를 수행해야 합니다.

  • 각 gcloud CLI 명령어와 함께 --organization 플래그를 전달하여 타겟 Apigee 조직을 지정합니다.
  • Apigee 엔드포인트를 재정의하고 모든 명령어가 새 리전 엔드포인트를 사용하도록 gcloud CLI를 구성합니다.

    예를 들어 미국 리전 엔드포인트를 사용하려면 gcloud CLI 명령어는 다음과 같습니다.

    gcloud config set api_endpoint_overrides/apigee https://apigee.us.rep.googleapis.com/

조직의 컨트롤 플레인 위치 보기

데이터 상주에 사용할 조직 (PROJECT_ID)을 이미 프로비저닝했으면 getProjectMapping API를 사용해서 다음 단계에 따라 프로젝트와 연관된 컨트롤 플레인 위치를 확인합니다.

  1. Google 사용자 인증 정보로 Cloud Platform에 액세스하도록 gcloud를 승인합니다.
    gcloud auth login
  2. getProjectMapping API를 호출합니다.

    액세스하는 정보는 고객 핵심 콘텐츠가 아닌 메타데이터이므로 전역 또는 리전 엔드포인트를 사용하여 API를 호출할 수 있습니다. 다음 명령어는 전역 엔드포인트를 사용합니다.

    curl -X GET https://apigee.googleapis.com/v1/organizations/PROJECT_ID:getProjectMapping \
        -H "Authorization: Bearer $(gcloud auth print-access-token)"

    여기서 PROJECT_ID은 Apigee 조직 이름입니다.

    다음은 응답의 예시입니다.

    {
      "organization": "my-project",
      "projectIds": [
        "my-project"
      ],
      "projectId": "my-project"
      "location": "us"
    }

고급 데이터 상주를 지원하도록 Apigee 조직 마이그레이션

데이터 상주를 지원하는 기존 Apigee 조직을 고급 데이터 상주를 지원하도록 이전하려면 다음 단계를 따르세요.

  1. Apigee가 프로비저닝된Google Cloud 프로젝트를 Assured Workloads 폴더로 이동합니다. 자세한 내용은 워크로드 이전을 참고하세요.
  2. 고급 데이터 상주가 정식 출시되기 전에 Apigee 조직을 만든 경우 전역 네트워킹 리소스를 재구성하여 필수 관할권 내로 이전해야 합니다. 그 외의 경우에는 이 단계를 건너뛸 수 있습니다.