표준 클러스터에 대한 액세스 관리

이 문서에서는 gdcloud CLI를 사용하여 Google Distributed Cloud (GDC) 에어 갭에서 표준 클러스터의 권한을 관리하는 방법을 설명합니다. 표준 클러스터는 맞춤 워크로드에 더 큰 유연성과 제어 기능을 제공하는 최소 기본 서비스가 포함된 프로젝트 범위의 구성 가능한 Kubernetes 환경입니다.

표준 클러스터 및 기타 클러스터 유형에 대한 자세한 내용은 Kubernetes 클러스터 구성을 참조하세요.

이 문서는 GDC 프로젝트 내에서 리소스를 관리하고 보호해야 하는 개발자 운영 또는 데이터 과학자와 같은 애플리케이션 운영자 그룹 내의 사용자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상을 참조하세요.

시작하기 전에

표준 클러스터에 대한 액세스를 관리하기 전에 필요한 권한이 있어야 하고 환경을 준비해야 합니다.

IAM 역할 요청

수행해야 하는 작업에 따라 조직 IAM 관리자에게 다음 역할을 요청하세요.

  • 프로젝트 IAM 관리자 (project-iam-admin): 프로젝트 내에서 표준 클러스터의 역할 바인딩을 만들고, 업데이트하고, 삭제합니다.
  • 표준 클러스터 관리자 (standard-cluster-admin): 특정 표준 클러스터 내에서 역할 바인딩을 만들고, 업데이트하고, 삭제합니다.

개발 환경 준비

표준 클러스터 액세스 권한 부여

프로젝트 IAM 관리자 (project-iam-admin) 역할이 있는 사용자는 표준 클러스터 내에서 액세스를 관리하는 데 필요한 역할을 다른 사용자에게 부여할 수 있습니다.

  1. 구성된 ID 공급업체로 로그인합니다. gdcloud CLI를 사용하여

  2. 사용자에게 프로젝트의 표준 클러스터 관리자 (standard-cluster-admin) 역할을 부여합니다. 이 명령어는 사용자를 역할에 바인딩하여 표준 클러스터 내에서 액세스를 관리할 수 있도록 합니다.

    역할에 대한 자세한 내용은 사전 정의된 역할 설명프로젝트의 역할 정의 를 참조하세요.

    gdcloud projects add-iam-policy-binding PROJECT \
      --role=ROLE \
      --member=user:USER_ACCOUNT
    

    다음 변수를 바꿉니다.

    • PROJECT: 표준 클러스터가 있는 프로젝트의 이름입니다.
    • ROLE: 부여할 역할의 이름입니다(예: standard-cluster-admin).
    • USER_ACCOUNT: 조직과 연결된 ID 공급업체 프리픽스 (예: idpprefix-user@example.com)를 포함하여 역할을 부여할 사용자 계정입니다. 사용되는 특정 프리픽스는 조직의 IdP 구성에 따라 다릅니다. 자세한 내용은 ID 공급업체에 연결 을 참조하세요.

    다음 예시에서는 ID 공급업체 프리픽스가 프로젝트 foofop-라고 가정하고 user@example.com에 표준 클러스터 관리자 역할을 부여합니다.

    gdcloud projects add-iam-policy-binding foo \
      --role=standard-cluster-admin \
      --member=user:fop-user@example.com
    

표준 클러스터 내에서 액세스 관리

표준 클러스터 관리자 (standard-cluster-admin) 역할이 있는 사용자는 표준 클러스터 내에서 액세스 권한을 부여할 수 있습니다.

  1. 구성된 ID 공급업체로 로그인합니다. gdcloud CLI를 사용하여

  2. --standard 플래그를 사용하여 표준 클러스터의 kubeconfig 파일을 생성합니다. 이 플래그는 표준 클러스터를 타겟팅하는 데 필요합니다.

    export KUBECONFIG=KUBECONFIG_FILE
    gdcloud clusters get-credentials STANDARD_CLUSTER_NAME --standard --project=PROJECT
    

    다음 변수를 바꿉니다.

    • KUBECONFIG_FILE: kubeconfig 파일의 경로(예: standard-cluster-kubeconfig.yaml)입니다.
    • STANDARD_CLUSTER_NAME: 표준 클러스터의 이름입니다.
    • PROJECT: 표준 클러스터가 있는 프로젝트의 이름입니다.
  3. kubectl을 사용하여 표준 클러스터 내에서 권한을 정의합니다.

    standard-cluster-admin 권한이 있는 사용자는 커스텀 RoleClusterRole 객체를 만들 수 있습니다. 이러한 권한을 부여하기 위해 사용자는 해당 RolebindingClusterRoleBinding 객체를 만들어 역할을 사용자 또는 서비스 계정과 같은 특정 주체에 바인딩할 수 있습니다.

    다음 예시에서는 kubectl을 사용하여 test 네임스페이스에 test-role이라는 샘플 커스텀 Role을 만듭니다.

    kubectl apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
      name: test-role
      namespace: test
    rules:
    - apiGroups:
      - ""
      resources:
      - configmaps
      verbs:
      - get
    EOF
    

    다음 예시에서는 test 네임스페이스에서 test-role이라는 RoleRoleBinding을 만듭니다. ID 공급업체 프리픽스가 fop-인 사용자 alice@example.com과 default 네임스페이스의 my-service-account라는 ServiceAccount에 권한을 부여합니다.

    kubectl apply -f - <<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: test-role-binding
      namespace: test
    subjects:
    - kind: User
      name: fop-alice@example.com
      apiGroup: rbac.authorization.k8s.io
    - kind: ServiceAccount
      name: my-service-account
      namespace: default
    roleRef:
      kind: Role
      name: test-role
      apiGroup: rbac.authorization.k8s.io
    EOF