15장. ImagePolicy [config.openshift.io/v1]
- 설명
ImagePolicy에는 이미지 서명 확인을 위한 네임스페이스 전체 구성이 포함되어 있습니다.
호환성 수준 1: 최소 12 개월 또는 3 개의 마이너 릴리스 (더 긴 버전) 동안 주요 릴리스 내에서 사용할 수 있습니다.
- 유형
-
object
- 필수 항목
-
spec
-
15.1. 사양 링크 복사링크가 클립보드에 복사되었습니다!
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec에는 구성에 대한 사용자 설정 가능 값이 있습니다. |
|
| 상태에는 리소스의 관찰된 상태가 포함됩니다. |
15.1.1. .spec 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- spec에는 구성에 대한 사용자 설정 가능 값이 있습니다.
- 유형
-
object
- 필수 항목
-
policy
-
범위
-
속성 | 유형 | 설명 |
---|---|---|
|
| 정책은 범위를 확인할 수 있는 구성이 포함된 필수 필드이며, 확인 정책과 일치하지 않는 이미지를 처리하는 방법을 정의합니다. |
|
|
범위는 정책에 할당된 이미지 ID 목록을 정의하는 필수 필드입니다. 각 항목은 "Docker Registry HTTP API V2"를 구현하는 레지스트리의 범위를 나타냅니다. 개별 이미지와 일치하는 범위는 태그 또는 다이제스트를 사용하여 완전히 확장된 형식으로 Docker 참조라고 합니다. 예를 들어 docker.io/ Cryostat/busybox:latest( busybox:latest 아님). 보다 일반적인 범위는 individual-image 범위 접두사로, 리포지토리(태그 또는 다이제스트를 생략하여), 리포지토리 네임스페이스 또는 레지스트리 호스트(호스트 이름 및 포트 번호만 지정) 또는 |
15.1.2. .spec.policy 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- 정책은 범위를 확인할 수 있는 구성이 포함된 필수 필드이며, 확인 정책과 일치하지 않는 이미지를 처리하는 방법을 정의합니다.
- 유형
-
object
- 필수 항목
-
rootOfTrust
-
속성 | 유형 | 설명 |
---|---|---|
|
| rootOfTrust는 검색 중에 이미지 서명을 확인하기 위한 신뢰의 루트를 정의하는 필수 필드입니다. 이를 통해 이미지 소비자는 정책 생성 방식과 일치하는 policyType 및 해당 정책 구성을 지정할 수 있습니다. |
|
| signedIdentity는 이미지에 대한 서명 클레임에 대한 이미지 ID를 지정하는 선택적 필드입니다. 이는 서명의 이미지 ID가 이미지 범위에 대해 미러 레지스트리가 구성된 경우와 같이 원본 이미지 사양과 다른 경우 미러 레지스트리의 서명에 원래 범위 대신 미러 레지스트리의 이미지 ID가 포함된 경우 유용합니다. 필요한 matchPolicy 필드는 서명 및 실제 이미지 ID를 확인하는 확인 프로세스에 사용되는 접근 방식을 지정합니다. 기본 matchPolicy는 "MatchRepoDigestOrExact"입니다. |
15.1.3. .spec.policy.rootOfTrust 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- rootOfTrust는 검색 중에 이미지 서명을 확인하기 위한 신뢰의 루트를 정의하는 필수 필드입니다. 이를 통해 이미지 소비자는 정책 생성 방식과 일치하는 policyType 및 해당 정책 구성을 지정할 수 있습니다.
- 유형
-
object
- 필수 항목
-
policyType
-
속성 | 유형 | 설명 |
---|---|---|
|
| fulcioCAWithRekor는 Fulcio 인증서 및 Rekor 공개 키를 기반으로 신뢰 구성의 루트를 정의합니다. policyType이 FulcioCAWithRekor인 경우 fulcioCAWithRekor가 필요하며, 금지된 경우 Fulcioio and Rekor에 대한 자세한 내용은 https://github.com/sigstore/fulcio 및 https://github.com/sigstore/rekor에서 참조하십시오. |
|
| policyType은 필수 필드이며 확인을 위한 정책 유형을 지정합니다. 이 필드는 정책이 생성된 방법과 일치해야 합니다. 허용되는 값은 "PublicKey", "FulcioCAWithRekor" 및 "PKI"입니다. "PublicKey"로 설정하면 정책은 sigstore publicKey에 의존하며 필요한 경우 Rekor 확인을 사용할 수 있습니다. "FulcioCAWithRekor"로 설정하면 이 정책은 Fulcio 인증을 기반으로 하며 Rekor 확인을 통합합니다. "PKI"로 설정하면 정책은 BYOPKI(Bring Your Own Public Key Infrastructure)의 인증서를 기반으로 합니다. 이 값은 SigstoreImageVerificationPKI 기능 게이트를 켜서 활성화됩니다. |
|
| publickey는 sigstore 공개 키를 기반으로 신뢰 구성의 루트를 정의합니다. 선택적으로 Rekor 확인을 위해 Rekor 공개 키를 포함합니다. policyType이 PublicKey인 경우 publicKey가 필요하며 달리 금지되는 경우 publicKey가 필요합니다. |
15.1.4. .spec.policy.rootOfTrust.fulcioCAWithRekor 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- fulcioCAWithRekor는 Fulcio 인증서 및 Rekor 공개 키를 기반으로 신뢰 구성의 루트를 정의합니다. policyType이 FulcioCAWithRekor인 경우 fulcioCAWithRekor가 필요하며, 금지된 경우 Fulcioio and Rekor에 대한 자세한 내용은 https://github.com/sigstore/fulcio 및 https://github.com/sigstore/rekor에서 참조하십시오.
- 유형
-
object
- 필수 항목
-
fulcioCAData
-
fulcioSubject
-
rekorKeyData
-
속성 | 유형 | 설명 |
---|---|---|
|
| fulcioCAData는 PEM 형식 fulcio CA에 대한 인라인 base64로 인코딩된 데이터를 포함하는 필수 필드입니다. fulcioCAData는 최대 8192자여야 합니다. |
|
| fulcioSubject는 OIDC 발행자 및 Fulcio 인증 구성의 이메일을 지정합니다. |
|
| rekorKeyData는 Rekor 공개 키의 PEM 형식에 대한 인라인 base64로 인코딩된 데이터를 포함하는 필수 필드입니다. rekorKeyData는 최대 8192자여야 합니다. |
15.1.5. .spec.policy.rootOfTrust.fulcioCAWithRekor.fulcioSubject 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- fulcioSubject는 OIDC 발행자 및 Fulcio 인증 구성의 이메일을 지정합니다.
- 유형
-
object
- 필수 항목
-
oidcIssuer
-
signedEmail
-
속성 | 유형 | 설명 |
---|---|---|
|
| oidcIssuer는 필요한 파일이며 예상되는 OIDC 발급자가 포함되어 있습니다. oidcIssuer는 유효한 URL과 최대 2048자여야 합니다. Fulcio-issued 인증서에 이 OIDC 발급자 URL을 가리키는 (Fulcio-defined) 인증서 확장이 포함되어 있는지 확인합니다. Fulcio는 인증서를 발행할 때 클라이언트 제공 ID 토큰 내의 URL을 기반으로 하는 값을 포함합니다. 예: "https://expected.OIDC.issuer/" |
|
| signedEmail은 Fulcio 인증서가 발행되는 이메일 주소를 포함하는 필수 필드입니다. 서명된 이메일 주소는 유효한 이메일 주소이어야 하며 최대 320자여야 합니다. 예: "expected-signing-user@example.com" |
15.1.6. .spec.policy.rootOfTrust.publicKey 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- publickey는 sigstore 공개 키를 기반으로 신뢰 구성의 루트를 정의합니다. 선택적으로 Rekor 확인을 위해 Rekor 공개 키를 포함합니다. policyType이 PublicKey인 경우 publicKey가 필요하며 달리 금지되는 경우 publicKey가 필요합니다.
- 유형
-
object
- 필수 항목
-
keyData
-
속성 | 유형 | 설명 |
---|---|---|
|
| keyData는 PEM 형식 공개 키에 대한 인라인 base64로 인코딩된 데이터가 포함된 필수 필드입니다. keyData는 최대 8192자여야 합니다. |
|
| rekorKeyData는 Rekor 공개 키의 PEM 형식에 대한 인라인 base64로 인코딩된 데이터를 포함하는 선택적 필드입니다. rekorKeyData는 최대 8192자여야 합니다. |
15.1.7. .spec.policy.signedIdentity 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- signedIdentity는 이미지에 대한 서명 클레임에 대한 이미지 ID를 지정하는 선택적 필드입니다. 이는 서명의 이미지 ID가 이미지 범위에 대해 미러 레지스트리가 구성된 경우와 같이 원본 이미지 사양과 다른 경우 미러 레지스트리의 서명에 원래 범위 대신 미러 레지스트리의 이미지 ID가 포함된 경우 유용합니다. 필요한 matchPolicy 필드는 서명 및 실제 이미지 ID를 확인하는 확인 프로세스에 사용되는 접근 방식을 지정합니다. 기본 matchPolicy는 "MatchRepoDigestOrExact"입니다.
- 유형
-
object
- 필수 항목
-
matchPolicy
-
속성 | 유형 | 설명 |
---|---|---|
|
| exactRepository는 서명의 ID와 정확히 일치해야 하는 리포지토리를 지정합니다. matchPolicy가 "ExactRepository"로 설정된 경우 exactRepository가 필요합니다. 서명이 원본 이미지 ID가 아닌 이 정확한 리포지토리와 일치하는 ID를 요청하는지 확인하는 데 사용됩니다. |
|
| matchPolicy는 이미지 범위에 대해 서명에서 이미지 ID를 확인하는 데 필요한 filed 전략을 지정합니다. 허용되는 값은 "MatchRepoDigestOrExact", "MatchRepository", "ExactRepository", "RemapIdentity"입니다. 생략하면 기본값은 "MatchRepoDigestOrExact"입니다. "MatchRepoDigestOrExact"로 설정하면 이미지 ID를 다이제스트에서 참조하는 경우 서명의 ID가 이미지 ID와 동일한 리포지토리에 있어야 합니다. 그렇지 않으면 서명의 ID가 이미지 ID와 동일해야 합니다. "MatchRepository"로 설정하면 서명의 ID가 이미지 ID와 동일한 리포지토리에 있어야 합니다. "ExactRepository"로 설정하면 exactRepository를 지정해야 합니다. 서명의 ID는 "repository"에서 지정하는 특정 ID와 동일한 리포지토리에 있어야 합니다. "RemapIdentity"로 설정하면 remapIdentity를 지정해야 합니다. 서명은 다시 매핑된 이미지 ID와 동일해야 합니다. 이미지 ID가 지정된 remapPrefix와 일치하는 경우 "prefix"를 지정된 "signedPrefix"로 교체하여 다시 매핑됩니다. |
|
| remapIdentity는 이미지 ID를 확인하기 위한 접두사 재지정 규칙을 지정합니다. matchPolicy가 "RemapIdentity"로 설정된 경우 remapIdentity가 필요합니다. 서명이 원래 이미지와 다른 레지스트리/repository 접두사를 요청하는지 확인하는 데 사용됩니다. |
15.1.8. .spec.policy.signedIdentity.exactRepository 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- exactRepository는 서명의 ID와 정확히 일치해야 하는 리포지토리를 지정합니다. matchPolicy가 "ExactRepository"로 설정된 경우 exactRepository가 필요합니다. 서명이 원본 이미지 ID가 아닌 이 정확한 리포지토리와 일치하는 ID를 요청하는지 확인하는 데 사용됩니다.
- 유형
-
object
- 필수 항목
-
리포지토리
-
속성 | 유형 | 설명 |
---|---|---|
|
| 리포지토리는 일치시킬 이미지 ID의 참조입니다. matchPolicy가 "ExactRepository"로 설정된 경우 리포지토리가 필요합니다. 값은 "Docker Registry HTTP API V2"를 구현하는 레지스트리의 리포지토리 이름(태그 또는 다이제스트를 생략하여)이어야 합니다. 예: docker.io/ Cryostat/busybox |
15.1.9. .spec.policy.signedIdentity.remapIdentity 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- remapIdentity는 이미지 ID를 확인하기 위한 접두사 재지정 규칙을 지정합니다. matchPolicy가 "RemapIdentity"로 설정된 경우 remapIdentity가 필요합니다. 서명이 원래 이미지와 다른 레지스트리/repository 접두사를 요청하는지 확인하는 데 사용됩니다.
- 유형
-
object
- 필수 항목
-
prefix
-
signedPrefix
-
속성 | 유형 | 설명 |
---|---|---|
|
| matchPolicy가 "RemapIdentity"로 설정된 경우 접두사가 필요합니다. 접두사는 일치하는 이미지 ID의 접두사입니다. 이미지 ID가 지정된 접두사와 일치하는 경우 해당 접두사는 지정된 "signedPrefix"로 교체됩니다(다른 방식으로는 변경되지 않고 다시 매핑되지 않음). 이는 공급 업체의 리포지토리 구조를 유지하는 다른 리포지토리 네임스페이스의 미러에 대한 서명을 확인할 때 유용합니다. 접두사 및 서명된Prefix 값은 host[:port], 문자열), 리포지토리 네임스페이스 또는 리포지토리(즉, 태그/digests를 포함하지 않아야 함) 값일 수 있으며 완전히 확장된 양식의 접두사로 일치시킬 수 있습니다. 예를 들어 docker.io/ Cryostat/busybox (not busybox)는 해당 단일 리포지토리를 지정하는 docker.io/busybox(빈 문자열이 아님)를 지정하여 docker.io/ Cryostat/busybox의 상위 네임스페이스를 지정합니다. |
|
| matchPolicy가 "RemapIdentity"로 설정된 경우 signedPrefix가 필요합니다. signedPrefix는 서명에 일치시킬 이미지 ID의 접두사입니다. 형식은 "prefix"와 동일합니다. 값은 host[:port] 값( 정확히 동일한 host[:port], string), 리포지토리 네임스페이스 또는 리포지토리(즉, 태그/digests를 포함하지 않아야 함) 값일 수 있으며 완전히 확장된 양식의 접두사로 일치시킬 수 있습니다. 예를 들어 docker.io/ Cryostat/busybox (not busybox)는 해당 단일 리포지토리를 지정하는 docker.io/busybox(빈 문자열이 아님)를 지정하여 docker.io/ Cryostat/busybox의 상위 네임스페이스를 지정합니다. |
15.1.10. .status 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- 상태에는 리소스의 관찰된 상태가 포함됩니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| conditions는 이 API Resource의 상태에 대한 세부 정보를 제공합니다. 조건 유형 'Pending'는 고객 리소스에 적용할 수 없는 정책이 포함되어 있음을 나타냅니다. 글로벌 정책으로 덮어쓰거나 이미지 범위가 유효하지 않습니다. |
|
| condition에는 이 API 리소스의 현재 상태에 대한 한 가지 측면에 대한 세부 정보가 포함되어 있습니다. |
15.1.11. .status.conditions 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- conditions는 이 API Resource의 상태에 대한 세부 정보를 제공합니다. 조건 유형 'Pending'는 고객 리소스에 적용할 수 없는 정책이 포함되어 있음을 나타냅니다. 글로벌 정책으로 덮어쓰거나 이미지 범위가 유효하지 않습니다.
- 유형
-
array
15.1.12. .status.conditions[] 링크 복사링크가 클립보드에 복사되었습니다!
- 설명
- condition에는 이 API 리소스의 현재 상태에 대한 한 가지 측면에 대한 세부 정보가 포함되어 있습니다.
- 유형
-
object
- 필수 항목
-
lastTransitionTime
-
message
-
reason
-
status
-
type
-
속성 | 유형 | 설명 |
---|---|---|
|
| lastTransitionTime은 마지막으로 한 상태에서 다른 상태로 전환된 시간입니다. 기본 조건이 변경된 경우여야 합니다. 이를 알 수 없는 경우 API 필드가 변경된 시간을 사용합니다. |
|
| message는 변환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다. 빈 문자열일 수 있습니다. |
|
| observedGeneration은 조건에 따라 설정된 .metadata.generation을 나타냅니다. 예를 들어 .metadata.generation이 현재 12이지만 .status.conditions[x].observedGeneration이 9인 경우 현재 인스턴스 상태와 관련된 조건이 최신 상태가 아닙니다. |
|
| 이유에는 조건의 마지막 전환 이유를 나타내는 프로그래밍 식별자가 포함되어 있습니다. 특정 조건 유형의 생산자는 이 필드에 예상되는 값과 의미를 정의할 수 있으며 값이 보장된 API로 간주되는지 여부를 정의할 수 있습니다. 값은 CamelCase 문자열이어야 합니다. 이 필드는 비어 있지 않을 수 있습니다. |
|
| 조건의 상태, True, False, 알 수 없음. |
|
| CamelCase 또는 foo.example.com/CamelCase의 조건 유형입니다. |