클러스터 인증서로 접근 제어 (RBAC 또는 ABAC) (더 이상 사용되지 않음)
GitLab에서 클러스터를 생성할 때 다음 중 하나를 생성할 것인지 요청받습니다:
- Role-based access control (RBAC) 클러스터, 이는 GitLab의 기본 및 권장 옵션입니다.
- 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 서비스 계정의 토큰 |
새 클러스터 생성 시 |
환경 네임스페이스 | Namespace |
모든 환경별 리소스를 포함 | 클러스터에 배포 시 |
환경 네임스페이스 | ServiceAccount |
환경의 네임스페이스 사용 | 클러스터에 배포 시 |
환경 네임스페이스 | Secret |
환경 서비스 계정의 토큰 | 클러스터에 배포 시 |
환경 네임스페이스 | RoleBinding |
admin 역할 |
클러스터에 배포 시 |
ABAC 클러스터 리소스
GitLab은 ABAC 클러스터에 대해 다음 리소스를 생성합니다.
이름 | 유형 | 세부정보 | 생성 시기 |
---|---|---|---|
gitlab |
ServiceAccount |
default 네임스페이스 |
새 클러스터 생성 시 |
gitlab-token |
Secret |
gitlab 서비스 계정의 토큰 |
새 클러스터 생성 시 |
환경 네임스페이스 | Namespace |
모든 환경별 리소스를 포함 | 클러스터에 배포 시 |
환경 네임스페이스 | ServiceAccount |
환경의 네임스페이스 사용 | 클러스터에 배포 시 |
환경 네임스페이스 | Secret |
환경 서비스 계정의 토큰 | 클러스터에 배포 시 |
러너의 보안
러너는 기본적으로 특권 모드가 활성화되어 있어 특별한 명령을 실행하고 Docker in Docker를 실행할 수 있습니다. 이 기능은 일부 Auto DevOps 작업을 실행하는 데 필요합니다. 이 말은 컨테이너가 특권 모드에서 실행되고 있음을 의미하며, 따라서 몇 가지 중요한 세부 사항을 인지해야 합니다.
특권 플래그는 실행 중인 컨테이너에 모든 권한을 부여하며, 이는 호스트가 할 수 있는 거의 모든 작업을 수행할 수 있습니다. 임의의 이미지에서 docker run
작업을 수행할 때는 루트 접근을 효과적으로 가지므로, 내재된 보안 위험을 인지해야 합니다.
특권 모드에서 러너를 사용하고 싶지 않다면, 다음 중 하나를 선택하세요:
- GitLab.com에서 인스턴스 러너를 사용하세요. 이들은 이러한 보안 문제가 없습니다.
-
docker+machine
을 사용하는 자체 러너를 설정하세요.