클러스터 인증서로 액세스 제어 (RBAC 또는 ABAC) (폐기됨)

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed
  • 배포를위한 제한된 서비스 계정이 GitLab 11.5에 도입되었습니다.
  • GitLab 14.5에서 폐기되었습니다.
caution
이 기능은 GitLab 14.5에서 폐기되었습니다. GitLab에 클러스터를 연결하려면 GitLab 에이전트를 사용하십시오.

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 역할 클러스터에 배포함

환경의 네임 스페이스 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을 사용하는 자체 러너를 설정합니다.