클러스터 인증서로 액세스 제어 (RBAC 또는 ABAC) (폐기됨)
GitLab에서 클러스터를 생성할 때 다음 중 하나를 만들지 여부를 묻습니다:
- GitLab의 기본 및 추천 옵션 인 Role-based access control (RBAC) 클러스터.
- Attribute-based access control (ABAC) 클러스터.
GitLab이 클러스터를 생성하면 default
네임스페이스에 cluster-admin
권한을 가진 gitlab
서비스 계정이 생성됩니다.
Helm은 또한 각 설치된 애플리케이션에 대해 추가 서비스 계정 및 기타 리소스를 생성합니다. 각 응용 프로그램의 Helm 차트 설명서를 참조하십시오.
기존의 Kubernetes 클러스터를 추가하는 경우 클러스터의 계정 토큰이 관리자 권한을 갖도록합니다.
GitLab에서 생성하는 리소스는 클러스터의 유형에 따라 다릅니다.
중요 사항
액세스 제어에 대해 다음을 주의하십시오:
- 환경별 리소스는 GitLab에서 관리되는 경우에만 만들어집니다.
- 클러스터가 GitLab 12.2 이전에 생성된 경우 모든 프로젝트 환경을위한 단일 네임 스페이스를 사용합니다.
RBAC 클러스터 리소스
GitLab은 다음과 같은 리소스를 RBAC 클러스터에 대해 생성합니다.
이름 | 타입 | 세부 정보 | 생성 시기 |
---|---|---|---|
gitlab
| ServiceAccount
|
default 네임스페이스
| 새 클러스터 생성함 |
gitlab-admin
| ClusterRoleBinding
|
cluster-admin 역할
| 새 클러스터 생성함 |
gitlab-token
| Secret
|
gitlab ServiceAccount의 토큰
| 새 클러스터 생성함 |
환경 네임 스페이스 | Namespace
| 모든 환경별 리소스를 포함 | 클러스터에 배포함 |
환경 네임 스페이스 | ServiceAccount
| 환경의 네임 스페이스 사용 | 클러스터에 배포함 |
환경 네임 스페이스 | Secret
| 환경 ServiceAccount의 토큰 | 클러스터에 배포함 |
환경 네임 스페이스 | RoleBinding
|
admin 역할
| 클러스터에 배포함 |
환경의 네임 스페이스 RoleBinding
은
GitLab 13.6에서 업데이트되어 admin
역할을 사용합니다. 이전에는 edit
역할이 사용되었습니다.
ABAC 클러스터 리소스
GitLab은 ABAC 클러스터에 대해 다음과 같은 리소스를 생성합니다.
이름 | 타입 | 세부 정보 | 생성 시기 |
---|---|---|---|
gitlab
| ServiceAccount
|
default 네임스페이스
| 새 클러스터 생성함 |
gitlab-token
| Secret
|
gitlab ServiceAccount의 토큰
| 새 클러스터 생성함 |
환경 네임 스페이스 | Namespace
| 모든 환경별 리소스 | 클러스터에 배포함 |
환경 네임 스페이스 | ServiceAccount
| 환경의 네임 스페이스 사용 | 클러스터에 배포함 |
환경 네임 스페이스 | Secret
| 환경 ServiceAccount의 토큰 | 클러스터에 배포함 |
러너의 보안
러너는 특권 모드가 기본으로 활성화되어 있어 특별한 명령을 실행하고 Docker를 Docker에서 실행할 수 있습니다. 이 기능은 일부 Auto DevOps 작업을 실행하는 데 필요합니다. 이는 컨테이너가 특권 모드로 실행되며 거의 호스트가 할 수있는 모든 작업을 수행할 수 있음을 의미합니다. 따라서 임의의 이미지에서 docker run
작업을 수행하는 것과 관련된 내재적 보안 리스크를 인식해야합니다.
러너를 특권 모드에서 사용하지 않으려면:
- GitLab.com의 인스턴스 러너를 사용합니다. 이러한 보안 이슈가 없습니다.
-
docker+machine
을 사용하는 자체 러너를 설정합니다.