이 가이드에서는 App Lifecycle Manager 테넌트를 사용하여 배포된 단위를 구성하고 리소스를 별도의 테넌트 프로젝트 에 배포하여 리소스를 격리하고 관리하는 방법을 설명합니다.
테넌트 및 테넌트 프로젝트에 대한 개요는 테넌트 및 테넌트 프로젝트를 참조하세요.
시작하기 전에
테넌트 프로젝트 또는 리소스를 만들기 전에 다음을 수행합니다.
- 프로듀서 프로젝트에서 Terraform 구성, Artifact Registry 저장소를 만들고 SaaS 애플리케이션이 포함된 아티팩트를 만듭니다. SaaS 제품을 설정하는 방법을 알아보려면 App Lifecycle Manager로 서비스 인스턴스 배포를 참조하세요.
App Lifecycle Manager에 필요한 API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기.프로듀서 프로젝트 내에서 필요한 서비스 계정 및 Identity and Access Management 역할이 부여되었는지 확인합니다. 여기에는 사용자 생성 서비스 계정과 프로듀서 프로젝트의
service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com계정에 부여된 권한이 포함됩니다.
테넌트 프로젝트 설정
테넌트의 리소스를 별도의 프로젝트에 프로비저닝하면 각 테넌트에 대해 리소스, IAM 정책, 할당량, 네트워크 구성이 분리되므로 한 테넌트의 침해 또는 잘못된 구성이 다른 테넌트에 영향을 미칠 가능성이 줄어듭니다.
준비사항:
- 프로듀서 프로젝트 1개
각 테넌트의 테넌트 프로젝트 1개
콘솔
콘솔을 사용하여 테넌트 및 프로듀서 프로젝트를 설정하려면 다음 안내를 따르세요. Google Cloud
- 프로듀서 프로젝트와 각 테넌트의 테넌트 프로젝트를 만듭니다.
- 테넌트 및 프로듀서 프로젝트에서 결제를 사용 설정합니다.
테넌트 프로젝트에서 App Lifecycle Manager에 필요한 API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할(roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기.테넌트 프로젝트에 필요한 권한이 있는 작동 서비스 계정이 있는지 확인합니다.
자세한 내용은 App Lifecycle Manager 서비스 계정을 참조하세요.
테넌트 및 프로듀서 프로젝트를 설정했습니다. 프로듀서 및 테넌트 프로젝트의 결제를 만들고 사용 설정하면 테넌트 리소스를 만들고 단위를 테넌트와 연결할 수 있습니다.
gcloud
Google Cloud CLI를 사용하여 프로듀서 및 테넌트 프로젝트를 설정하려면 다음 안내를 따르세요.
프로듀서 프로젝트와 각 테넌트의 테넌트 프로젝트를 만듭니다.
gcloud projects create PRODUCER_PROJECT_ID --name="SaaS producer project" [--folder=folder-id] gcloud projects create TENANT_PROJECT_ID --name="SaaS tenant A project" [--folder=folder-id]다음을 바꿉니다.
PRODUCER_PROJECT_ID: 프로듀서 프로젝트 ID를 나타내는 문자열 식별자입니다.TENANT_PROJECT_ID: 테넌트 프로젝트 ID를 나타내는 문자열 식별자입니다.
테넌트 및 프로듀서 프로젝트에서 결제를 사용 설정합니다.
gcloud beta billing projects link PRODUCER_PROJECT_ID --billing-account=BILLING_ACCOUNT_ID gcloud beta billing projects link TENANT_PROJECT_ID --billing-account=BILLING_ACCOUNT_ID다음을 바꿉니다.
PRODUCER_PROJECT_ID: 프로듀서 프로젝트 ID를 나타내는 문자열 식별자입니다.TENANT_PROJECT_ID: 테넌트 프로젝트 ID를 나타내는 문자열 식별자입니다.BILLING_ACCOUNT_ID: 지정된 프로젝트와 연결할 결제 계정의 ID입니다.
각 테넌트 프로젝트에 필요한 Identity and Access Management 역할을 작동 서비스 계정에 부여합니다.
gcloud projects add-iam-policy-binding TENANT_PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT@PRODUCER_PROJECT_ID.iam.gserviceaccount.com' \ --role=ROLE다음을 바꿉니다.
TENANT_PROJECT_ID: 테넌트 프로젝트 ID를 나타내는 문자열 식별자입니다.PRODUCER_PROJECT_ID: 프로듀서 프로젝트 ID를 나타내는 문자열 식별자입니다.SERVICE_ACCOUNT: 지정된 프로젝트 내에서 역할을 부여할 서비스 계정입니다.ROLE: 부여할 Identity and Access Management 역할입니다.지정된 서비스 계정에 부여할 각 역할에 대해
gcloud projects add-iam-policy-binding을 실행해야 합니다 (예:--role='roles/compute.admin').
테넌트 및 프로듀서 프로젝트를 설정했습니다. 프로듀서 및 테넌트 프로젝트의 결제를 만들고 사용 설정하면 테넌트 리소스를 만들고 단위를 테넌트와 연결할 수 있습니다.
테넌트 리소스 만들기
SaaS 제품에서 고객을 나타내는 테넌트 리소스를 만듭니다.
콘솔에서 App Lifecycle Manager > 테넌트 로 이동합니다. Google Cloud
만들기 를 클릭합니다.
테넌트 이름 상자에 테넌트 리소스의 이름을 입력합니다.
(선택사항) 고객 리소스 상자에 통합을 위한 소비자 정의 설정이 있는 소비자 리소스를 제공합니다.
SaaS 제품 상자에서 테넌트를 연결할 SaaS 제품을 선택합니다.
리전 드롭다운에서 테넌트 메타데이터가 저장될 리전을 선택합니다.
(선택사항) 라벨 추가 를 클릭하여 키-값 쌍 라벨을 테넌트에 추가합니다.
만들기 를 클릭하여 테넌트 리소스를 만듭니다.
테넌트 리소스를 만들었습니다.
단위를 테넌트와 연결
테넌트를 만들고 단위를 배포한 후에는 서로 연결할 수 있습니다. 이 연결은 주로 어떤 단위가 어떤 테넌트에 속하는지 구성하는 데 도움이 되는 조직 태그 역할을 합니다.
단위 배포에 대한 자세한 내용은 App Lifecycle Manager로 VM 배포를 참조하세요.
단위를 테넌트와 연결하려면 다음 안내를 따르세요.
콘솔에서 App Lifecycle Manager > 테넌트 로 이동합니다. Google Cloud
단위를 연결할 테넌트의 이름을 클릭합니다.
수정 을 클릭합니다.
연결된 단위 섹션에서 단위 추가 를 클릭합니다.
이 테넌트에 연결할 단위를 선택합니다.
완료 를 클릭합니다.
저장 을 클릭합니다.
선택한 단위가 표시된 테넌트와 연결됩니다.
테넌트 프로젝트 변수로 새 단위 프로비저닝
테넌트와 연결된 단위를 프로비저닝할 때는 tenant_project_id 변수를 제공해야 합니다.
콘솔에서 App Lifecycle Manager > 단위 로 이동합니다. Google Cloud
단위 종류와 연결된 새 단위를 만듭니다.
프로비저닝 을 클릭합니다.
테넌트 단위에 프로비저닝할 출시 를 선택합니다.
테넌트 프로젝트에서 권한을 부여한 작동 서비스 계정 을 선택합니다. 최소 권한의 원칙을 따르고 관리되는 리소스에 필요한 역할만 부여해야 합니다.
입력 변수 섹션에서 다음을 수행합니다.
- Terraform 구성
variables.tf파일에서 정의한 대로tenant_project_id변수가 나열되어 있는지 확인합니다. - 테넌트 프로젝트 ID 상자에 테넌트 프로젝트의 이름을 제공합니다.
- Terraform 구성에 정의된 입력 변수를 제공합니다. Terraform 구성에서 다른 변수를 정의하지 않은 경우 이 단계를 건너뜁니다.
- Terraform 구성
프로비저닝 을 클릭합니다.
App Lifecycle Manager는 지정된 작동 서비스 계정을 사용하여 Infrastructure Manager를 트리거합니다. Infrastructure Manager는 tenant_project_id 변수를 읽고 해당 테넌트 프로젝트 내에서 VM을 만듭니다.
새 출시 버전으로 단위 다시 프로비저닝
새 출시 버전으로 기존 단위를 다시 프로비저닝할 때는 tenant_project_id 변수를 제공해야 합니다.
콘솔에서 App Lifecycle Manager > 단위 로 이동합니다. Google Cloud
단위 종류와 연결된 단위를 선택합니다.
프로비저닝 수정 을 클릭합니다.
업데이트된 Terraform 구성으로 만든 출시 를 선택합니다.
테넌트 프로젝트에서 권한을 부여한 작동 서비스 계정 을 선택합니다. 최소 권한의 원칙을 따르고 관리되는 리소스에 필요한 역할만 부여해야 합니다.
입력 변수 섹션에서 다음을 수행합니다.
- Terraform 구성
variables.tf파일에서 정의한 대로tenant_project_id변수가 나열되어 있는지 확인합니다. - 테넌트 프로젝트 ID 상자에 테넌트 프로젝트의 이름을 제공합니다.
- Terraform 구성에 정의된 입력 변수를 제공합니다. Terraform 구성에서 다른 변수를 정의하지 않은 경우 이 단계를 건너뜁니다.
- Terraform 구성
업데이트 를 클릭합니다.
App Lifecycle Manager는 지정된 작동 서비스 계정을 사용하여 Infrastructure Manager를 트리거합니다. Infrastructure Manager는 tenant_project_id 변수를 읽고 해당 테넌트 프로젝트 내에서 VM을 만듭니다.
다음 단계
- 단위 간 종속 항목 관리를 살펴봅니다.
- 변수 및 변수 매핑 사용에 대해 자세히 알아봅니다.
- 서비스 계정에 필요한 권한을 검토합니다.