IBM Cloud Kubernetes Service 에 대해 Terraform을 사용하여 클러스터 액세스 지정
IBM Cloud® 기반 Terraform은 IaC(Infrastructure as Code) 프린시펄에 따라 복잡한 멀티티어 클라우드 환경을 신속하게 구축할 수 있도록 IBM Cloud 서비스에 대한 예측 가능하고 일관성 있는 프로비저닝을 가능하게 해줍니다. IBM Cloud CLI 또는 API및 SDK를 사용하는 것과 유사하게, HashiCorp 구성 언어 (HCL) 를 사용하여 IBM Cloud Kubernetes Service 리소스의 프로비저닝, 업데이트 및 삭제를 자동화할 수 있습니다.
관리되는 Terraform on IBM Cloud® 솔루션을 찾고 있습니까? IBM Cloud® Schematics을 사용해 보십시오. Schematics를 사용하면 익숙한 Terraform 스크립팅 언어를 사용할 수 있지만 Terraform 명령행 또는 IBM Cloud® 제공자 플러그인의 설정 및 유지보수에 대해 걱정할 필요가 없습니다. Schematics 는 IBM Cloud® 카탈로그에서 쉽게 설치할 수 있는 사전 정의된 Terraform 템플리트도 제공합니다.
Terraform을 사용하여 Kubernetes Service 클러스터 작성
Terraform을 사용하여 클러스터 액세스를 지정하려면 먼저 Terraform을 사용하여 Kubernetes Service 클러스터를 작성하는 단계를 수행하십시오. 이미 클러스터가 있는 경우 IAM 사용자 액세스 지정 을 참조하십시오.
시작하기 전에 IBM Cloud Kubernetes Service 리소스를 작성하고 이에 대해 작업하기 위한 필수 액세스 가 있는지 확인하십시오.
-
Terraform on IBM Cloud® 시작하기 튜토리얼에 따라 Terraform CLI를 설치하고 Terraform용 IBM Cloud® 제공자 플러그인을 구성하십시오. 플러그인은 IBM Cloud® API를 추출합니다. 이 API는 Kubernetes Service 서비스 인스턴스 및 리소스를 프로비저닝하거나 업데이트하거나 삭제하는 데 사용됩니다.
-
튜토리얼에 따라 Terraform을 사용하여 단일 및 다중 구역 클러스터 작성 을 수행하십시오.
-
선택사항: Terraform을 사용하여 Kubernetes Service 클러스터 에 대한 IAM 사용자 액세스 정책을 구성하십시오.
Kubernetes Service 클러스터에 IAM 사용자 액세스 지정
Terraform을 사용하여 IBM Cloud 계정에서 Kubernetes Service 클러스터에 대한 IAM 사용자 액세스 권한을 지정할 수 있습니다. IAM 정책에서 Terraform 사용에 대한 자세한 정보는 IBM Cloud 제공자 Terraform 문서를 참조하십시오.
-
Terraform 디렉토리에서
iam.tf
라는 구성 파일을 작성하십시오.iam.tf
파일에서 HashiCorp 구성 언어 (HCL) 를 사용하여 Kubernetes Service 클러스터에 대한 IAM 사용자 액세스 정책을 작성하기 위한 구성 매개변수를 추가하십시오. 다음 예제 구성은ibm_iam_user_policy
를 작성한 후 지정된 클러스터에 정책을 지정합니다. 자세한 정보는 Terraform 문서를 참조하십시오.resource "ibm_iam_user_policy" "cluster" { ibm_id = "<ibm_id>" roles = ["<access_role_1>, <access_role_2>"] resources { service = "containers-kubernetes" resource_instance_id = "<cluster_name>" } }
Terraform을 사용하여 IAM 액세스 정책 구성 자원 설명 ibm_id
IAM 액세스 정책을 작성할 사용자의 IBM Cloud ID 또는 이메일 주소입니다. roles
사용자에게 지정할 액세스 역할의 쉼표로 구분된 목록입니다. service
액세스 정책이 적용되는 서비스의 유형입니다. Kubernetes Service 클러스터에 대해 "containers-kubernetes"
를 입력하십시오. 적용 가능한 서비스 유형의 전체 목록을 보려면ibmcloud ks catalog service-marketplace
를 실행하십시오.resource_instance_id
클러스터의 ID 또는 이름입니다. 구성 파일 예:
resource "ibm_iam_user_policy" "test_policy" { ibm_id = "ibm_id@ibm.com" roles = ["Viewer", "Editor", "Administrator"] resources { service = "containers-kubernetes" resource_instance_id = "my-cluster" } }
-
Terraform CLI를 초기화하십시오.
terraform init
-
Terraform 실행 플랜을 작성하고 출력을 검토하십시오. Terraform 실행 플랜은 계정에서 Kubernetes Service 클러스터를 작성하기 위해 실행되는 모든 조치를 요약합니다. 출력의
Plan
섹션을 참고하십시오. 구성 파일이 하나의 IAM 사용자 액세스 정책을 작성하기 때문에 예제 출력은Plan: 1 to add, 0 to change, 0 to destroy
를 나타냅니다.Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # ibm_iam_user_policy.test_policy will be created + resource "ibm_iam_user_policy" "test_policy" { + account_management = false + ibm_id = "ibm_id@ibm.com" + id = (known after apply) + roles = [ + "Viewer", + "Editor", + "Administrator", ] + resources { + service = "containers-kubernetes" } } Plan: 1 to add, 0 to change, 0 to destroy.
-
구성 파일을 적용하여 액세스 정책을 작성하십시오. 완료하는 데 몇 초가 걸릴 수 있습니다. 출력에서 사용자의 IBM 이메일 뒤에 정책 ID 번호를 기록해 두십시오.
terraform apply
출력 예:
ibm_iam_user_policy.test_policy: Creating... ibm_iam_user_policy.test_policy: Creation complete after 2s [id=ibm_id@ibm.com/f81b161f-e1db-4084-8b28-cfcbe88fec72]
-
명령을 실행하고 이전에 기록한 정책 ID를 검색하여 IAM 액세스 정책이 성공적으로 작성되었는지 확인하십시오.
ibmcloud iam user-policies ibm_id@ibm.com
출력 예:
Policy ID: f81b161f-e1db-4084-8b28-cfcbe88fec72 Roles: Viewer, Editor, Administrator Resources: Service Name containers-kubernetes Service Instance my-cluster