보호된 컨테이너 저장소
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
기본적으로 Developer, Maintainer 또는 Owner 권한이 있는 모든 사용자는 컨테이너 저장소에 컨테이너 이미지를 푸시하고 삭제할 수 있습니다. 컨테이너 저장소가 보호되면 기본 동작은 컨테이너 저장소와 해당 이미지에 다음 제한을 적용합니다:
히스토리
- GitLab 16.7에서
container_registry_protected_containers라는 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다. 이 기능은 실험입니다. - GitLab 17.8에서 GitLab.com에서 활성화되었습니다.
- GitLab 17.8에서 일반적으로 사용 가능해졌습니다. 기능 플래그
container_registry_protected_containers가 제거되었습니다.
기본적으로 Developer, Maintainer 또는 Owner 권한이 있는 모든 사용자는 컨테이너 저장소에 컨테이너 이미지를 푸시하고 삭제할 수 있습니다. 컨테이너 저장소의 컨테이너 이미지를 변경할 수 있는 사용자를 제한하기 위해 컨테이너 저장소를 보호합니다.
컨테이너 저장소가 보호되면 기본 동작은 컨테이너 저장소와 해당 이미지에 다음 제한을 적용합니다:
| 작업 | 최소 권한 |
|---|---|
| 컨테이너 저장소와 컨테이너 이미지를 보호합니다. | Maintainer 권한. |
| 컨테이너 저장소에 새 이미지를 푸시하거나 만듭니다. | Minimum access level for push 설정에서 설정된 권한. |
| 컨테이너 저장소에 기존 이미지를 푸시하거나 업데이트합니다. | Minimum access level for push 설정에서 설정된 권한. |
| 배포 토큰으로 컨테이너 저장소에 기존 이미지를 푸시, 만들거나 업데이트합니다. | 해당 없음. 배포 토큰은 보호되지 않은 저장소에서 사용할 수 있지만 범위에 관계없이 보호된 컨테이너 저장소에 이미지를 푸시하는 데 사용할 수 없습니다. |
와일드카드(*)를 사용하여 동일한 컨테이너 보호 규칙으로 여러 컨테이너 저장소를 보호할 수 있습니다.
예를 들어 CI/CD 파이프라인 중에 빌드된 임시 컨테이너 이미지를 포함하는 여러 컨테이너 저장소를 보호할 수 있습니다.
다음 표에는 여러 컨테이너 저장소와 일치하는 컨테이너 보호 규칙의 예가 포함되어 있습니다:
| 와일드카드가 있는 경로 패턴 | 일치하는 컨테이너 저장소 예시 |
|---|---|
group/container-* |
group/container-prod, group/container-prod-sha123456789 |
group/*container |
group/container, group/prod-container, group/prod-sha123456789-container |
group/*container* |
group/container, group/prod-sha123456789-container-v1 |
동일한 컨테이너 저장소에 여러 보호 규칙을 적용할 수 있습니다. 하나 이상의 보호 규칙이 일치하면 컨테이너 저장소가 보호됩니다.
컨테이너 저장소 보호 규칙 만들기#
히스토리
- GitLab 16.10에서 도입되었습니다.
전제 조건:
- Maintainer 또는 Owner 권한이 있어야 합니다.
보호 규칙을 만들려면:
- 왼쪽 사이드바에서 Settings > Packages and registries를 선택합니다.
- Container registry를 펼칩니다.
- Protected container repositories 아래에서 Add protection rule을 선택합니다.
- 필드를 입력합니다:
- Repository path pattern은 보호할 컨테이너 저장소 경로입니다.
패턴에는 와일드카드(
*)가 포함될 수 있습니다. - Minimum access level for push는 보호된 컨테이너 저장소 경로에 푸시(만들기 또는 업데이트)하는 데 필요한 최소 액세스 수준을 설명합니다.
- Repository path pattern은 보호할 컨테이너 저장소 경로입니다.
패턴에는 와일드카드(
- Protect를 선택합니다.
보호 규칙이 만들어지고 컨테이너 저장소가 이제 보호됩니다.
컨테이너 저장소 보호 규칙 삭제#
히스토리
- GitLab 17.0에서 도입되었습니다.
전제 조건:
- Maintainer 또는 Owner 권한이 있어야 합니다.
보호 규칙을 삭제하려면:
- 왼쪽 사이드바에서 Settings > Packages and registries를 선택합니다.
- Container registry를 펼칩니다.
- Protected container repositories 아래에서 삭제할 보호 규칙 옆에 있는 Delete([remove])를 선택합니다.
- 확인 대화 상자에서 Delete를 선택합니다.
보호 규칙이 삭제되고 컨테이너 저장소는 더 이상 보호되지 않습니다.
