Menu Close

2.4. 컨테이너 이미지 서명

Red Hat은 Red Hat Container Registries에 있는 이미지에 대한 서명을 제공합니다. 이러한 서명은 MCO(Machine Config Operator)를 사용하여 OpenShift Container Platform 4 클러스터로 가져올 때 자동으로 확인할 수 있습니다.

Quay.io는 OpenShift Container Platform을 구성하는 대부분의 이미지를 제공하며 릴리스 이미지만 서명됩니다. 릴리스 이미지는 승인된 OpenShift Container Platform 이미지를 참조하여 공급 체인 공격에 대한 보안 수준을 제공합니다. 그러나 로깅, 모니터링 및 서비스 메시와 같은 OpenShift Container Platform에 대한 일부 확장 기능은 OLM(Operator Lifecycle Manager)에서 Operator로 제공됩니다. 이러한 이미지는 Red Hat Ecosystem Catalog 컨테이너 이미지 레지스트리에서 제공됩니다.

Red Hat 레지스트리와 인프라 간의 이미지의 무결성을 확인하려면 서명 확인을 활성화하십시오.

2.4.1. Red Hat Container Registries에 대한 서명 확인 활성화

Red Hat Container Registries에 대한 컨테이너 서명 검증을 활성화하려면 이러한 레지스트리의 이미지를 확인하는 키를 지정하는 서명 확인 정책 파일을 작성해야 합니다. 레지스트리는 기본적으로 /etc/containers/registries.d에 이미 정의되어 있습니다.

절차

  1. 작업자 노드에 필요한 구성이 포함된 Butane 구성 파일 51-worker-rh-registry-trust.bu를 만듭니다.

    참고

    Butane에 대한 자세한 내용은 “Butane 을 사용하여 머신 구성 생성”을 참조하십시오.

    variant: openshift
    version: 4.8.0
    metadata:
      name: 51-worker-rh-registry-trust
      labels:
        machineconfiguration.openshift.io/role: worker
    storage:
      files:
      - path: /etc/containers/policy.json
        mode: 0644
        overwrite: true
        contents:
          inline: |
            {
              "default": [
                {
                  "type": "insecureAcceptAnything"
                }
              ],
              "transports": {
                "docker": {
                  "registry.access.redhat.com": [
                    {
                      "type": "signedBy",
                      "keyType": "GPGKeys",
                      "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release"
                    }
                  ],
                  "registry.redhat.io": [
                    {
                      "type": "signedBy",
                      "keyType": "GPGKeys",
                      "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release"
                    }
                  ]
                },
                "docker-daemon": {
                  "": [
                    {
                      "type": "insecureAcceptAnything"
                    }
                  ]
                }
              }
            }
  2. Butane을 사용하여 작업자 노드의 디스크에 작성할 파일이 포함된 머신 구성 YAML 파일 51-worker-rh-registry-trust.yaml을 생성합니다.

    $ butane 51-worker-rh-registry-trust.bu -o 51-worker-rh-registry-trust.yaml
  3. 생성된 머신 구성을 적용합니다.

    $ oc apply -f 51-worker-rh-registry-trust.yaml
  4. 컨트롤 플레인 노드에서 디스크에 구성을 쓰는 Butane 구성 및 해당 머신 구성을 생성합니다.

    $ sed -e 's,\(machineconfiguration.openshift.io/role: \)worker,\1master,' \
        -e 's,\(name: 51-\)worker,\1master,' 51-worker-rh-registry-trust.bu \
        > 51-master-rh-registry-trust.bu
    $ butane 51-master-rh-registry-trust.bu -o 51-master-rh-registry-trust.yaml
  5. 클러스터에 컨트롤 플레인 머신 구성을 적용합니다.

    $ oc apply -f 51-master-rh-registry-trust.yaml