모든 주체(사용자 또는 그룹)는 관리 API 서버 및 Kubernetes 클러스터에 액세스하기 위해 다음 두 단계 프로세스를 따릅니다.
관리 API 서버 액세스:
ClusterRoleBinding
또는RoleBinding
을 사용하여 관리 API 서버의 권한이 있는 주체에 미리 정의된ClusterRole
를 부여합니다.Kubernetes 클러스터 액세스: 네임스페이스별 액세스 또는 클러스터 전체 액세스 권한을 부여합니다.
네임스페이스별 액세스: 클러스터 내에서 특정 프로젝트의 네임스페이스에 대한 액세스 권한을 부여하려면
ProjectRole
및 해당ProjectRoleBinding
을 만듭니다. 이 프로세스는 KubernetesRole
및RoleBinding
을 클러스터의 KubernetesNamespace
에 전파합니다. 이는ProjectRole
및ProjectRoleBinding
이 연결된Project
에 해당합니다.클러스터 전체 액세스: 클러스터 내의 모든 네임스페이스에 대한 액세스 권한을 부여하려면
OrganizationRole
및 해당OrganizationRoleBinding
을 만듭니다. 이 프로세스는 KubernetesClusterRole
및ClusterRoleBinding
를 전체 Kubernetes 클러스터에 전파합니다.
페르소나 (IO, PA, AO)는 역할이 아니라 특정 권한에 매핑되고 개별 사용자에게 할당된 사용자 역할의 모음입니다.
조직 IAM 관리자와 프로젝트 IAM 관리자 모두 추가 프로젝트별 권한을 부여하기 위해 프로젝트 역할과 프로젝트 역할 바인딩을 더 만들 수 있습니다. 하지만 조직 IAM 관리자는 모든 프로젝트에 대해 프로젝트 역할과 프로젝트 역할 바인딩을 만들 수 있습니다. 반면 프로젝트 IAM 관리자는 액세스 권한이 있는 프로젝트에 대해서만 프로젝트 역할과 프로젝트 역할 바인딩을 만들 수 있습니다.
역할 바인딩 설정
팀 구성원에게 조직 또는 프로젝트 수준에서 리소스에 대한 액세스 권한을 부여하는 역할 바인딩을 설정할 수 있습니다.
역할 바인딩을 설정하는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 조직 IAM 관리자 역할을 부여해 달라고 요청하세요.
승인된 회원에게 역할을 할당하려면 다음 단계를 따르세요.
콘솔
- GDC 콘솔에 로그인합니다.
- 프로젝트 선택을 클릭하여 조직 또는 프로젝트를 선택합니다.
- 조직의 역할 바인딩을 설정하려면 조직을 선택합니다.
- 프로젝트의 역할 바인딩을 설정하려면 프로젝트를 선택하세요.
- 탐색 메뉴에서 ID 및 액세스 > 액세스를 클릭합니다.
- 구성원 추가를 클릭합니다.
- ID 공급업체 목록에서 ID 공급업체를 선택합니다.
- 개별 사용자 또는 그룹을 추가할지 선택합니다.
- 사용자 이름 또는 그룹 별칭 필드에 사용자 이름, 이메일 주소 또는 별칭을 입력합니다.
- 역할 목록에서 사용자 또는 그룹에 할당할 역할을 선택합니다(예: 조직 수준의 조직 뷰어 또는 프로젝트 수준의 프로젝트 생성자).
- 추가를 클릭합니다.
회원이 승인된 회원 목록에 표시됩니다.
gdcloud
gdcloud CLI가 설치되어 있는지 확인합니다.
gdcloud auth login
명령어를 사용하여 ID 공급자로 인증합니다. 자세한 내용은 gdcloud CLI 인증을 참고하세요.역할 바인딩을 설정합니다.
조직의 역할 바인딩을 설정합니다.
gdcloud organizations add-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
다음 변수를 바꿉니다.
USER_ACCOUNT
: 역할을 부여할 사용자 계정입니다. 이 플래그는 ID 공급자 접두사(user:idpprefix-user@example.com
)가 있는 사용자 이메일 주소 또는 서비스 계정 프로젝트(serviceAccount:projectName:serviceAccountName
)가 있는 서비스 계정 이름을 허용합니다.ROLE_TYPE
: 역할 바인딩을 설정할ClusterRole
,Role
또는OrganizationRole
입니다.ROLE
: 사용자에게 할당할 사전 정의된 역할 또는 맞춤 역할의 이름입니다 (예:project-creator
).
프로젝트의 역할 바인딩을 설정합니다.
gdcloud projects add-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
다음 변수를 바꿉니다.
PROJECT
: 역할 바인딩을 설정할 프로젝트의 이름입니다.USER_ACCOUNT
: 역할을 부여할 사용자 계정입니다. 이 플래그는 ID 공급자 접두사(user:idpprefix-user@example.com
)가 있는 사용자 이메일 주소 또는 서비스 계정 프로젝트(serviceAccount:projectName:serviceAccountName
)가 있는 서비스 계정 이름을 허용합니다.ROLE_TYPE
: 역할 바인딩을 설정할Role
또는ProjectRole
입니다.ROLE
: 사용자에게 할당할 사전 정의된 역할 또는 맞춤 역할의 이름입니다 (예:project-viewer
).
API
사용하는 사용자 인증 정보를 내보냅니다.
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIG
역할을 할당할 사용자 계정을 내보냅니다. 여기에는 ID 공급자 접두사 (예:
idpprefix-paul@example.com
)가 포함됩니다.export USERNAME=IDP_PREFIX-USER_EMAIL
사용자에게 필요한 역할의 이름(예:
project-creator
)을 내보냅니다. 역할에 관한 자세한 내용은 역할 정의를 참고하세요.export ROLE_NAME=ROLE_NAME
ClusterRole
,Role
,ProjectRole
또는OrganizationRole
에 사용자를 할당합니다.ClusterRole
에 사용자 할당:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME}
ClusterRole
에ClusterRoleBinding
대신RoleBinding
이 필요한 경우 역할 정의를 참고하여 역할에 필요한 바인딩 유형을 확인하고 네임스페이스gpc-system
에 RoleBinding을 만드세요.kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME} --namespace=gpc-system
Role
에 사용자 할당:바인딩을 만들어야 하는 네임스페이스를 내보냅니다.
export BINDING_NAMESPACE=BINDING_NAMESPACE
다음 명령어를 실행하여
RoleBinding
를 만듭니다.kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --role=${ROLE_NAME} --user=${USERNAME} --namespace=${BINDING_NAMESPACE}
ProjectRole
에 사용자 할당:projectrolebinding.yaml
파일을 만듭니다.apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectRoleBinding metadata: name: BINDING_NAME namespace: PROJECT_NAME spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: ProjectRole name: ROLE_NAME subjects: - apiGroup: rbac.authorization.k8s.io kind: USER_KIND name: USERNAME
다음을 바꿉니다.
BINDING_NAME
: 사용자가 맞춤설정할 수 있는 바인딩의 이름입니다 (예:user-project-creator-binding
).PROJECT_NAME
: 역할을 부여할 프로젝트의 이름입니다.ROLE_NAME
: 사용자에게 할당할ProjectRole
의 이름입니다.USER_KIND
: 사용자 종류입니다.User
,Group
또는ServiceAccount
일 수 있습니다.USERNAME
: 역할이 할당되는 사용자의 이메일 주소입니다(ID 공급자 접두사(예:idpprefix-paul@example.com
) 포함). 이는 내보낸USERNAME
와 일치해야 합니다.
projectrolebinding.yaml
파일을 적용합니다.kubectl create -f projectrolebinding.yaml
OrganizationRole
에 사용자 할당:organizationrolebinding.yaml
파일을 만듭니다.apiVersion: resourcemanager.gdc.goog/v1 kind: OrganizationRoleBinding metadata: name: BINDING_NAME namespace: gpc-system spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: OrganizationRole name: ROLE_NAME subjects: - apiGroup: rbac.authorization.k8s.io kind: USER_KIND name: USERNAME
다음을 바꿉니다.
BINDING_NAME
: 사용자가 맞춤설정할 수 있는 바인딩의 이름입니다 (예:user-organization-creator-binding
).ROLE_NAME
: 사용자에게 할당할OrganizationRole
의 이름입니다.USER_KIND
: 사용자 종류입니다.User
,Group
또는ServiceAccount
일 수 있습니다.USERNAME
: 역할이 할당되는 사용자의 이메일 주소입니다(ID 공급자 접두사(예:idpprefix-paul@example.com
) 포함). 이는 내보낸USERNAME
와 일치해야 합니다.
organizationrolebinding.yaml
YAML 파일을 적용합니다.kubectl create -f organizationrolebinding.yaml
역할 바인딩 삭제
더 이상 액세스 권한이 필요하지 않으면 구성원과 연결된 역할, 권한, 액세스 권한을 삭제합니다.
구성원을 삭제하려면 다음 단계를 따르세요.
콘솔
- GDC 콘솔에 로그인합니다.
- 탐색 메뉴에서 ID 및 액세스 > 액세스를 클릭합니다.
- 승인된 구성원 목록에서 구성원을 선택합니다.
- 구성원 삭제를 클릭합니다.
- 메시지가 표시되면 구성원 삭제를 클릭하여 확인합니다.
gdcloud
gdcloud CLI가 설치되어 있는지 확인합니다.
gdcloud auth login
명령어를 사용하여 ID 공급자로 인증합니다. 자세한 내용은 gdcloud CLI 인증을 참고하세요.역할 바인딩을 삭제합니다.
조직의 역할 바인딩을 삭제합니다.
gdcloud organizations remove-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
다음 변수를 바꿉니다.
USER_ACCOUNT
: 역할을 삭제할 사용자 계정입니다. 이 플래그는 ID 공급자 접두사(user:idpprefix-user@example.com
)가 있는 사용자 이메일 주소 또는 서비스 계정 프로젝트(serviceAccount:projectName:serviceAccountName
)가 있는 서비스 계정 이름을 허용합니다.ROLE_TYPE
: 역할 바인딩을 삭제할ClusterRole
,Role
또는OrganizationRole
입니다.ROLE
: 사용자 계정에서 삭제할 사전 정의된 역할 또는 맞춤 역할의 이름입니다 (예:project-creator
).
프로젝트의 역할 바인딩을 삭제합니다.
gdcloud projects remove-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLE
다음 변수를 바꿉니다.
PROJECT
: 역할 바인딩을 삭제할 프로젝트의 이름입니다.USER_ACCOUNT
: 역할을 삭제할 사용자 계정입니다. 이 플래그는 ID 공급자 접두사(user:idpprefix-user@example.com
)가 있는 사용자 이메일 주소 또는 서비스 계정 프로젝트(serviceAccount:projectName:serviceAccountName
)가 있는 서비스 계정 이름을 허용합니다.ROLE_TYPE
: 역할 바인딩을 삭제할Role
또는ProjectRole
입니다.ROLE
: 사용자 계정에서 삭제할 사전 정의된 역할 또는 맞춤 역할의 이름입니다 (예:project-viewer
).
API
사용하는 사용자 인증 정보를 내보냅니다.
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIG
역할을 삭제할 사용자 계정을 내보냅니다. ID 공급업체 접두사 (예:
idpprefix-paul@example.com
)를 포함합니다.export USERNAME=IDP_PREFIX-USER_EMAIL
바인딩이 삭제되는 네임스페이스를 내보냅니다.
export BINDING_NAMESPACE=BINDING_NAMESPACE
ClusterRoleBinding
,RoleBinding
,ProjectRoleBinding
또는OrganizationRoleBinding
를 삭제하여 사용자 계정에 부여된 권한을 취소합니다.사용자 계정에서
ClusterRoleBinding
삭제:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-pa
사용자 계정에서
RoleBinding
삭제:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}
사용자 계정에서
ProjectRoleBinding
삭제:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}
사용자 계정에서
OrganizationRoleBinding
삭제:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete organizationrolebinding ${USERNAME}-pa \ --namespace=gpc-system
사용자 액세스 권한 취소
조직 또는 팀을 탈퇴한 멤버의 Google Distributed Cloud (GDC) 에어갭 어플라이언스 액세스 권한을 취소할 수 있습니다. 사용자의 액세스 권한을 취소하면 GDC 에어갭 어플라이언스에서 로그아웃되고 역할과 권한이 삭제됩니다. 시작 시간과 종료 시간을 기준으로 사용자의 활동과 세션을 나열할 수도 있습니다.
사용자의 액세스 권한을 취소하려면 다음 단계를 따르세요.
사용자를 취소하는 데 필요한 권한을 가져옵니다. 조직 IAM 관리자에게 조직 세션 관리자(
org-session-admin
) 역할을 부여해 달라고 요청하세요.사용자의 액세스 권한을 취소합니다.
gdcloud admin auth revoke --accounts USER_EMAIL
USER_EMAIL를 액세스 권한을 취소할 사용자의 이메일로 바꿉니다.
명령어를 실행하면 다음과 비슷한 출력이 표시됩니다. 이 예에서는 사용자
ariel@example.com
의 액세스 권한을 취소합니다.Success: NUMBER of sessions revoked for user ariel@example.com
이 예에서 변수 NUMBER은 사용자가 보유한 활성 세션 수를 나타냅니다.
gdcloud admin auth revoke
명령어를 다시 실행하여 사용자의 액세스 권한이 취소되었는지 확인합니다. 성공하면 다음이 표시됩니다.No sessions found for account: ariel@example.com
취소된 사용자 모두 나열
취소된 모든 사용자와 해당 사용자의 활동 및 세션을 보려면 다음 단계를 따르세요.
시작 시간과 종료 시간으로 취소된 모든 사용자를 나열합니다.
gdcloud admin auth list --format="csv(ACCOUNT, IDENTITY_PROVIDER, CREATION_TIME, EXPIRATION_TIME)"
성공하면 다음과 비슷한 출력이 표시됩니다.
account,identity_provider,creation_time,expiration_time ariel@example.com,example-idp,2023-02-15 22:10:52,2023-02-15 23:10:52