10.3. 서비스 계정에 역할을 부여하는 예
일반 사용자 계정에 역할을 부여하는 것과 같은 방식으로 서비스 계정에 역할을 부여할 수 있습니다.
현재 프로젝트의 서비스 계정을 수정할 수 있습니다. 예를 들어,
top-secret
개체에서robot
서비스 계정에view
역할을 추가하려면 다음을 수행합니다.$ oc policy add-role-to-user view system:serviceaccount:top-secret:robot
작은 정보다음 YAML을 적용하여 역할을 추가할 수도 있습니다.
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: view namespace: top-secret roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: view subjects: - kind: ServiceAccount name: robot namespace: top-secret
프로젝트의 특정 서비스 계정에 대한 액세스 권한을 부여할 수도 있습니다. 예를 들어 서비스 계정이 속하는 프로젝트에서
-z
플래그를 사용하고<service_account_name>
을 지정합니다.$ oc policy add-role-to-user <role_name> -z <service_account_name>
중요프로젝트의 특정 서비스 계정에 대한 액세스 권한을 부여하려면
-z
플래그를 사용합니다. 이 플래그를 사용하면 오타를 방지하고 지정된 서비스 계정에만 액세스 권한을 부여할 수 있습니다.작은 정보다음 YAML을 적용하여 역할을 추가할 수도 있습니다.
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: <rolebinding_name> namespace: <current_project_name> roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: <role_name> subjects: - kind: ServiceAccount name: <service_account_name> namespace: <current_project_name>
다른 네임스페이스를 수정하려면 다음 예제와 같이
-n
옵션을 사용하여 적용되는 프로젝트 네임스페이스를 나타낼 수 있습니다.예를 들어 모든 프로젝트의 모든 서비스 계정에서
my-project
프로젝트의 리소스를 볼 수 있도록 하려면 다음을 실행합니다.$ oc policy add-role-to-group view system:serviceaccounts -n my-project
작은 정보다음 YAML을 적용하여 역할을 추가할 수도 있습니다.
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: view namespace: my-project roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: view subjects: - apiGroup: rbac.authorization.k8s.io kind: Group name: system:serviceaccounts
managers
프로젝트의 모든 서비스 계정에서my-project
프로젝트의 리소스를 편집할 수 있도록 하려면 다음을 실행합니다.$ oc policy add-role-to-group edit system:serviceaccounts:managers -n my-project
작은 정보다음 YAML을 적용하여 역할을 추가할 수도 있습니다.
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: edit namespace: my-project roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: edit subjects: - apiGroup: rbac.authorization.k8s.io kind: Group name: system:serviceaccounts:managers