{"meta":{"title":"Kubernetes 어드미션 컨트롤러를 사용하여 아티팩트 증명서 적용","intro":"허용 컨트롤러를 사용하여 Kubernetes 클러스터에서 아티팩트 증명을 적용합니다.","product":"GitHub Actions","breadcrumbs":[{"href":"/ko/actions","title":"GitHub Actions"},{"href":"/ko/actions/how-tos","title":"사용법"},{"href":"/ko/actions/how-tos/secure-your-work","title":"작업 보안"},{"href":"/ko/actions/how-tos/secure-your-work/use-artifact-attestations","title":"아티팩트 증명 사용"},{"href":"/ko/actions/how-tos/secure-your-work/use-artifact-attestations/enforce-artifact-attestations","title":"아티팩트 증명 적용"}],"documentType":"article"},"body":"# Kubernetes 어드미션 컨트롤러를 사용하여 아티팩트 증명서 적용\n\n허용 컨트롤러를 사용하여 Kubernetes 클러스터에서 아티팩트 증명을 적용합니다.\n\n> \\[!NOTE] 계속하기 전에 `push-to-registry`에 설명된 대로, [`attest` 작업](https://github.com/actions/attest)에서 [](/ko/actions/how-tos/secure-your-work/use-artifact-attestations/use-artifact-attestations#generating-build-provenance-for-container-images) 속성을 설정하는 것을 포함하여 컨테이너 이미지에 대한 빌드 출처를 사용 설정했는지 확인하세요. 이는 정책 컨트롤러가 증명을 확인하는 데 필요합니다.\n\n## Kubernetes 어드미션 컨트롤러 기본 사용법\n\nGitHub 아티팩트 증명을 적용하기 위한 허용 컨트롤러를 설정하려면 다음을 수행해야 합니다.\n\n1. [Sigstore Policy Controller](#deploy-the-sigstore-policy-controller)를 배포합니다.\n2. [GitHub `TrustRoot` 및 `ClusterImagePolicy`를 클러스터에 추가합니다](#add-the-github-trustroot-and-a-clusterimagepolicy).\n3. [네임스페이스에서 정책을 사용하도록 설정합니다](#enable-the-policy-in-your-namespace).\n\n### Sigstore Policy Controller 배포\n\nSigstore 정책 컨트롤러는 패키지화되어 [Helm 차트](https://github.com/sigstore/helm-charts)를 통해 제공되었습니다. 시작하기 전에 다음과 같은 필수 구성 요소가 있는지 확인합니다.\n\n* 버전 1.27 이상이 있는 Kubernetes 클러스터\n* [Helm](https://helm.sh/docs/intro/install/) 3.0 이상\n* [kubectl](https://kubernetes.io/docs/tasks/tools/)\n\n먼저 Sigstore Policy Controller를 배포하는 Helm 차트를 설치합니다.\n\n```bash copy\nhelm upgrade policy-controller --install --atomic \\\n  --create-namespace --namespace artifact-attestations \\\n  oci://ghcr.io/sigstore/helm-charts/policy-controller \\\n  --version 0.10.5\n```\n\n그러면 Policy Controller가 `artifact-attestations` 네임스페이스에 설치됩니다. 이 시점에서는 정책이 구성되지 않았으며 증명을 적용하지 않습니다.\n\n### GitHub `TrustRoot` 및 `ClusterImagePolicy` 추가\n\n정책 컨트롤러가 배포되면 GitHub `TrustRoot` 및 `ClusterImagePolicy`를 클러스터에 추가해야 합니다. 제공된 Helm 차트를 사용하여 이 작업을 수행합니다.\n`MY-ORGANIZATION`을 GitHub 조직의 이름(예: `github` 또는`octocat-inc`)으로 바꿔야 합니다.\n\n```bash copy\nhelm upgrade trust-policies --install --atomic \\\n --namespace artifact-attestations \\\n oci://ghcr.io/github/artifact-attestations-helm-charts/trust-policies \\\n --version v0.7.0 \\\n --set policy.enabled=true \\\n --set policy.organization=MY-ORGANIZATION\n```\n\n이제 GitHub 트러스트 루트와 아티팩트 증명 정책을 클러스터에 설치했습니다. 이 정책은 GitHub 조직 내에서 시작되지 않은 아티팩트를 거부합니다.\n\n### 네임스페이스에서 정책 사용하도록 설정\n\n> \\[!WARNING]\n> 이 정책은 적용해야 하는 네임스페이스를 지정할 때까지 적용되지 않습니다.\n\n클러스터의 각 네임스페이스는 독립적으로 정책을 적용할 수 있습니다. 네임스페이스에서 적용을 사용하도록 설정하기 위해 네임스페이스에 다음 레이블을 추가할 수 있습니다.\n\n```yaml\nmetadata:\n  labels:\n    policy.sigstore.dev/include: \"true\"\n```\n\n레이블이 추가되면 GitHub 아티팩트 증명 정책이 네임스페이스에 적용됩니다.\n\n또는 다음을 실행할 수 있습니다.\n\n```bash copy\nkubectl label namespace MY-NAMESPACE policy.sigstore.dev/include=true\n```\n\n### 이미지 매칭\n\n기본적으로 `trust-policies` Helm 차트와 함께 설치된 정책은 모든 이미지를 클러스터에 허용하기 전에 모든 이미지에 대한 증명을 확인합니다. 이미지의 하위 집합에 대해서만 증명을 적용하려는 경우, Helm 값 `policy.images` 및 `policy.exemptImages`을(를) 사용하여 일치시킬 이미지 목록을 지정할 수 있습니다. 이러한 값은 이미지 이름과 일치하는 GLOB 패턴 목록으로 설정할 수 있습니다. 글로빙 구문은 Go의 [filepath](https://pkg.go.dev/path/filepath#Match) 시맨틱을 따르며, 슬래시를 포함한 모든 문자 시퀀스와 일치하도록 `**` 기능이 추가되었습니다.\n\n예를 들어, `ghcr.io/MY-ORGANIZATION/*` 패턴과 일치하는 이미지에 대해 인증을 적용하고 유효한 인증 없이 `busybox`을(를) 허용하려면 다음과 같이 실행할 수 있습니다.\n\n```bash copy\nhelm upgrade trust-policies --install --atomic \\\n --namespace artifact-attestations \\\n oci://ghcr.io/github/artifact-attestations-helm-charts/trust-policies \\\n --version v0.7.0 \\\n --set policy.enabled=true \\\n --set policy.organization=MY-ORGANIZATION \\\n --set-json 'policy.exemptImages=[\"index.docker.io/library/busybox**\"]' \\\n --set-json 'policy.images=[\"ghcr.io/MY-ORGANIZATION/**\"]'\n```\n\n이미지가 Docker Hub에서 시작되더라도 모든 패턴은 정규화된 이름을 사용해야 합니다. 이 예에서 `busybox` 이미지를 제외하려면 모든 이미지 버전과 일치하도록 도메인 및 이중별 글로브를 포함한 전체 이름(`index.docker.io/library/busybox**`)을 제공해야 합니다.\n\n허용하려는 모든 이미지는 반드시 \\_\\_ 목록의 glob 패턴과 일치 `policy.images` 한다는 점을 유념하세요. 이미지가 패턴과 일치하지 않으면 거부됩니다. 또한 이미지가 `policy.images`와 `policy.exemptImages`에 모두 일치하는 경우 거부됩니다.\n\n### 고급 사용\n\nHelm 차트를 사용하여 구성할 수 있는 옵션의 전체 집합을 보기 위해 다음 명령 중 하나를 실행할 수 있습니다.\n정책 컨트롤러 옵션의 경우:\n\n```bash copy\nhelm show values oci://ghcr.io/sigstore/helm-charts/policy-controller --version 0.10.5\n```\n\n신뢰 정책 옵션의 경우:\n\n```bash copy\nhelm show values oci://ghcr.io/github/artifact-attestations-helm-charts/trust-policies --version v0.7.0\n```\n\nSigstore Policy Controller에 대한 자세한 내용은 [Sigstore Policy Controller 설명서](https://docs.sigstore.dev/policy-controller/overview/)를 참조하세요."}