Menu Close

2.9.2. 배포할 수 있는 이미지 소스 제어

원하는 이미지가 실제로 배포되고 포함된 콘텐츠를 포함하는 이미지가 신뢰할 수 있는 소스의 이미지이며 변경되지 않은 것이 중요합니다. 암호화 서명을 사용하면 이를 보장할 수 있습니다. OpenShift Container Platform을 사용하면 클러스터 관리자는 배포 환경 및 보안 요구 사항을 반영하여 광범위하거나 한정된 보안 정책을 적용할 수 있습니다. 이 정책을 정의하는 매개변수는 다음 두 가지입니다.

  • 선택적 프로젝트 네임스페이스가 있는 레지스트리 하나 이상
  • 공개 키 수락, 거부 또는 필수와 같은 신뢰 유형

이러한 정책 매개변수를 사용하여 전체 레지스트리, 레지스트리 일부 또는 개별 이미지의 신뢰 관계를 허용, 거부 또는 필수로 지정할 수 있습니다. 신뢰할 수 있는 공개 키를 사용하면 암호화 방식으로 소스를 확인할 수 있습니다. 정책 규칙은 노드에 적용됩니다. 정책은 모든 노드에 균일하게 적용되거나 다른 노드 워크로드(예 : 빌드, 영역 또는 환경)를 대상으로 할 수 있습니다.

이미지 서명 정책 파일 예

{
    "default": [{"type": "reject"}],
    "transports": {
        "docker": {
            "access.redhat.com": [
                {
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release"
                }
            ]
        },
        "atomic": {
            "172.30.1.1:5000/openshift": [
                {
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyPath": "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release"
                }
            ],
            "172.30.1.1:5000/production": [
                {
                    "type": "signedBy",
                    "keyType": "GPGKeys",
                    "keyPath": "/etc/pki/example.com/pubkey"
                }
            ],
            "172.30.1.1:5000": [{"type": "reject"}]
        }
    }
}

정책은 /etc/containers/policy.json으로 노드에 저장될 수 있습니다. 이 파일을 노드에 저장할 때는 새로운 MachineConfig 오브젝트를 사용하는 것이 가장 좋습니다. 이 예에서는 다음 규칙을 적용합니다.

  • Red Hat 공개 키로 Red Hat Registry( registry.access.redhat.com)의 이미지에 서명해야 합니다.
  • openshift 네임스페이스에 있는 OpenShift Container Registry의 이미지에 Red Hat 공개 키로 서명해야 합니다.
  • production 네임스페이스에 있는 OpenShift Container Registry의 이미지에 example.com의 공개 키로 서명해야 합니다.
  • 글로벌 default 정의로 지정되지 않은 다른 모든 레지스트리는 거부됩니다.