클러스터 인증서를 사용한 액세스 제어 (RBAC 또는 ABAC) (deprecated)


Tier: Free, Premium, Ultimate
Offering: GitLab.com, Self-managed
caution

이 기능은 GitLab 14.5에서 deprecated되었습니다.
GitLab에 클러스터를 연결하려면 대신 GitLab agent를 사용하십시오.

GitLab에서 클러스터를 생성할 때, 다음 중 하나를 생성할지 묻습니다:

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용 토큰 클러스터에 배포 시

러너의 보안

러너는 기본적으로 privileged mode가 활성화되어 있으며, 특수 명령을 실행하고 Docker 내에서 Docker를 실행할 수 있습니다. 이 기능은 Auto DevOps 작업 중 일부를 실행하는 데 필요합니다. 이는 컨테이너가 특권 모드로 실행되며, 따라서 중요한 세부 사항을 인식해야 합니다.

특권 플래그는 실행 중인 컨테이너에 모든 권한을 제공하며, 결과적으로 호스트가 할 수 있는 거의 모든 작업을 수행할 수 있습니다. 임의의 이미지에 대해 docker run 작업을 수행하기 때문에 이에 따른 내재적 보안 위험을 인식해야 합니다.

러너를 특권 모드로 사용하고 싶지 않은 경우 다음 중 하나를 사용하십시오:

  • GitLab.com의 인스턴스 러너를 사용하십시오. 이러한 보안 문제가 없습니다.
  • docker+machine을 사용하는 자체 러너를 설정하십시오.