클러스터 인증서를 통한 접근 제어(RBAC 또는 ABAC) (지원 중단됨)
Offering: GitLab.com, GitLab Self-Managed
이 기능은 GitLab 14.5에서 지원 중단되었습니다. GitLab에서 클러스터를 생성할 때 다음 중 어느 것을 생성할지 선택합니다: GitLab이 클러스터를 생성할 때 새로 생성된 클러스터를 관리하기 위해 default 네임스페이스에 cluster-admin 권한이 있는 gitlab 서비스 계정이 생성됩니다.
이 기능은 GitLab 14.5에서 지원 중단되었습니다. 클러스터를 GitLab에 연결하려면 Kubernetes용 GitLab 에이전트를 사용하세요.
GitLab에서 클러스터를 생성할 때 다음 중 어느 것을 생성할지 선택합니다:
- 역할 기반 접근 제어(RBAC) 클러스터 - GitLab 기본값이며 권장 옵션.
- 속성 기반 접근 제어(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 역할 |
클러스터에 배포 시 |
ABAC 클러스터 리소스#
GitLab은 ABAC 클러스터에 대해 다음 리소스를 생성합니다.
| 이름 | 유형 | 세부 정보 | 생성 시점 |
|---|---|---|---|
gitlab |
ServiceAccount |
default 네임스페이스 |
새 클러스터 생성 시 |
gitlab-token |
Secret |
gitlab ServiceAccount 토큰 |
새 클러스터 생성 시 |
| 환경 네임스페이스 | Namespace |
환경별 리소스 포함 | 클러스터에 배포 시 |
| 환경 네임스페이스 | ServiceAccount |
환경의 네임스페이스 사용 | 클러스터에 배포 시 |
| 환경 네임스페이스 | Secret |
환경 ServiceAccount 토큰 | 클러스터에 배포 시 |
러너 보안#
러너는 기본적으로 특권 모드가 활성화되어 있어 특수 명령을 실행하고 Docker in Docker를 실행할 수 있습니다. 이 기능은 Auto DevOps job 일부를 실행하는 데 필요합니다. 이는 컨테이너가 특권 모드로 실행됨을 의미하므로 몇 가지 중요한 세부 사항을 알고 있어야 합니다.
특권 플래그는 실행 중인 컨테이너에 모든 기능을 부여하며, 이는 결국 호스트가 할 수 있는 거의 모든 작업을 수행할 수 있음을 의미합니다. 사실상 루트 액세스 권한을 가진 임의의 이미지에 docker run 작업을 수행하는 것과 관련된 고유한 보안 위험에 주의하세요.
특권 모드에서 러너를 사용하지 않으려면 다음 중 하나를 선택하세요:
- GitLab.com에서 인스턴스 러너를 사용합니다. 이 보안 문제가 없습니다.
docker+machine을 사용하는 자체 러너를 설정합니다.
