1.5. OCI 레지스트리에 인증


클러스터 관리자는 OCI 레지스트리로 서명을 푸시하기 전에 레지스트리에 인증하도록 Tekton 체인을 구성해야 합니다. Tekton 체인 컨트롤러는 작업이 실행되는 동일한 서비스 계정을 사용합니다. 서명을 OCI 레지스트리로 내보내는 데 필요한 자격 증명으로 서비스 계정을 설정하려면 다음 단계를 수행합니다.

프로세스

  1. Kubernetes 서비스 계정의 네임스페이스 및 이름을 설정합니다.

    $ export NAMESPACE=<namespace> 
    1
    
    $ export SERVICE_ACCOUNT_NAME=<service_account> 
    2
    1
    서비스 계정과 연결된 네임스페이스입니다.
    2
    서비스 계정의 이름입니다.
  2. Kubernetes 시크릿을 생성합니다.

    $ oc create secret registry-credentials \
      --from-file=.dockerconfigjson \ 
    1
    
      --type=kubernetes.io/dockerconfigjson \
      -n $NAMESPACE
    1
    Docker 구성 파일의 경로로 바꿉니다. 기본 경로는 ~/.docker/config.json 입니다.
  3. 서비스 계정에 시크릿에 대한 액세스 권한을 부여합니다.

    $ oc patch serviceaccount $SERVICE_ACCOUNT_NAME \
      -p "{\"imagePullSecrets\": [{\"name\": \"registry-credentials\"}]}" -n $NAMESPACE

    Red Hat OpenShift Pipelines가 모든 작업 실행에 할당하는 기본 파이프라인 서비스 계정을 패치하면 Red Hat OpenShift Pipelines Operator가 서비스 계정을 재정의합니다. 모범 사례로 다음 단계를 수행할 수 있습니다.

    1. 사용자의 작업 실행에 할당할 별도의 서비스 계정을 생성합니다.

      $ oc create serviceaccount <service_account_name>
    2. 작업 실행 템플릿에서 serviceaccountname 필드의 값을 설정하여 서비스 계정을 작업 실행에 연결합니다.

      apiVersion: tekton.dev/v1beta1
      kind: TaskRun
      metadata:
      name: build-push-task-run-2
      spec:
      serviceAccountName: build-bot 
      1
      
      taskRef:
        name: build-push
      ...
      1
      새로 생성된 서비스 계정의 이름으로 바꿉니다.

1.5.1. 추가 인증 없이 작업 실행 서명 생성 및 확인

추가 인증과 함께 Tekton Chains를 사용하여 작업 실행 서명을 확인하려면 다음 작업을 수행합니다.

  • 암호화된 x509 키 쌍을 생성하여 Kubernetes 시크릿으로 저장합니다.
  • Tekton 체인 백엔드 스토리지를 구성합니다.
  • 작업 실행을 생성하고 서명하고, 서명 및 페이로드를 작업 실행 자체에 주석으로 저장합니다.
  • 서명된 작업 실행에서 서명 및 페이로드를 검색합니다.
  • 작업 실행 서명을 확인합니다.

사전 요구 사항

다음 사항이 클러스터에 설치되어 있는지 확인합니다.

  • Red Hat OpenShift Pipelines Operator
  • Tekton 체인
  • cosign

프로세스

  1. 암호화된 x509 키 쌍을 생성하여 Kubernetes 시크릿으로 저장합니다.

    $ cosign generate-key-pair k8s://openshift-pipelines/signing-secrets

    메시지가 표시되면 암호를 입력합니다. cosign은 생성된 개인 키를 openshift-pipelines 네임스페이스에 signing-secrets Kubernetes 시크릿의 일부로 저장합니다.

  2. Tekton 체인 구성에서 OCI 스토리지를 비활성화하고 작업 실행 스토리지 및 형식을 tekton 로 설정합니다.

    $ oc patch configmap chains-config -n openshift-pipelines -p='{"data":{"artifacts.oci.storage": "", "artifacts.taskrun.format":"tekton", "artifacts.taskrun.storage": "tekton"}}'
  3. Tekton 체인 컨트롤러를 다시 시작하여 수정된 구성이 적용되었는지 확인합니다.

    $ oc delete po -n openshift-pipelines -l app=tekton-chains-controller
  4. 작업 실행을 생성합니다.

    $ oc create -f https://raw.githubusercontent.com/tektoncd/chains/main/examples/taskruns/task-output-image.yaml 
    1
    
    taskrun.tekton.dev/build-push-run-output-image-qbjvh created
    1
    작업 실행을 가리키는 URI 또는 파일 경로로 바꿉니다.
  5. 단계 상태를 확인하고 프로세스가 완료될 때까지 기다립니다.

    $ tkn tr describe --last
    [...truncated output...]
    NAME                            STATUS
    ∙ create-dir-builtimage-9467f   Completed
    ∙ git-source-sourcerepo-p2sk8   Completed
    ∙ build-and-push                Completed
    ∙ echo                          Completed
    ∙ image-digest-exporter-xlkn7   Completed
  6. base64 인코딩 주석으로 저장된 오브젝트에서 서명 및 페이로드를 검색합니다.

    $ export TASKRUN_UID=$(tkn tr describe --last -o  jsonpath='{.metadata.uid}')
    $ tkn tr describe --last -o jsonpath="{.metadata.annotations.chains\.tekton\.dev/signature-taskrun-$TASKRUN_UID}" > signature
    $ tkn tr describe --last -o jsonpath="{.metadata.annotations.chains\.tekton\.dev/payload-taskrun-$TASKRUN_UID}" | base64 -d > payload
  7. 서명을 확인합니다.

    $ cosign verify-blob --key k8s://openshift-pipelines/signing-secrets --signature ./signature ./payload
    Verified OK
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동