3.4.2. 소스 복제 보안
빌더 Pod는 빌드의 소스로 정의된 모든 Git 리포지토리에 액세스해야 합니다. 소스 복제 보안은 자체 서명되거나 신뢰할 수 없는 SSL 인증서가 있는 프라이빗 리포지토리 또는 리포지토리와 같이 일반적으로 액세스할 수 없는 리포지토리에 대한 액세스 권한을 제공하는 데 사용됩니다.
다음과 같은 소스 복제 보안 구성이 지원됩니다.
- .gitconfig 파일
- 기본 인증
- SSH 키 인증
- 신뢰할 수 있는 인증 기관
이러한 구성의 조합을 사용하여 특정 요구 사항을 충족할 수도 있습니다.
3.4.2.1. 빌드 구성에 소스 복제 보안 자동 추가
BuildConfig
가 생성되면 OpenShift Container Platform에서 소스 복제 보안 참조를 자동으로 채울 수 있습니다. 이 동작을 사용하면 생성된 빌드에서 참조된 보안에 저장된 자격 증명을 자동으로 사용하여 추가 구성없이 원격 Git 리포지토리에 인증할 수 있습니다.
이 기능을 사용하려면 Git 리포지토리 자격 증명이 포함된 보안이 나중에 BuildConfig
가 생성되는 네임스페이스에 있어야 합니다. 이 보안에는 build.openshift.io/source-secret-match-uri-
접두사가 있는 주석이 하나 이상 포함되어야 합니다. 이러한 주석의 각 값은 다음과 같이 정의되는 URI(Uniform Resource Identifier) 패턴입니다. 소스 복제 보안 참조 없이 BuildConfig
를 생성하고 해당 Git 소스 URI가 보안 주석의 URI 패턴과 일치하는 경우 OpenShift Container Platform은 BuildConfig
에 해당 보안에 대한 참조를 자동으로 삽입합니다.
사전 요구 사항
URI 패턴은 다음으로 구성되어야 합니다.
-
유효 스키마:
*://
,git://
,http://
,https://
또는ssh://
-
호스트: *' 또는 유효한 호스트 이름이나 필요한 경우 앞에
*.
가 있는 IP 주소 -
경로:
/*
또는/
뒤에*
문자를 선택적으로 포함하는 모든 문자
위의 모든 항목에서 *
문자는 와일드카드로 해석됩니다.
URI 패턴은 RFC3986을 준수하는 Git 소스 URI와 일치해야 합니다. URI 패턴에 사용자 이름(또는 암호) 구성 요소를 포함하지 마십시오.
예를 들어 Git 리포지토리 URL에 ssh://git@bitbucket.atlassian.com:7999/ATLASSIAN jira.git
을 사용하는 경우 소스 보안을 ssh://bitbucket.atlassian.com:7999/*
(ssh://git@bitbucket.atlassian.com:7999/*
아님)로 지정해야 합니다.
$ oc annotate secret mysecret \ 'build.openshift.io/source-secret-match-uri-1=ssh://bitbucket.atlassian.com:7999/*'
프로세스
특정 BuildConfig
의 Git URI와 일치하는 보안이 여러 개인 경우 OpenShift Container Platform은 가장 긴 일치 항목이 있는 보안을 선택합니다. 이렇게 하면 다음 예와 같이 기본 덮어쓰기가 가능합니다.
다음 조각은 두 개의 부분적인 소스 복제 보안을 보여줍니다. 첫 번째는 HTTPS를 통해 액세스하는 도메인 mycorp.com
의 모든 서버와 일치하고, 두 번째는 서버 mydev1.mycorp.com
및 mydev2.mycorp.com
에 대한 액세스 권한을 덮어씁니다.
kind: Secret apiVersion: v1 metadata: name: matches-all-corporate-servers-https-only annotations: build.openshift.io/source-secret-match-uri-1: https://*.mycorp.com/* data: ... --- kind: Secret apiVersion: v1 metadata: name: override-for-my-dev-servers-https-only annotations: build.openshift.io/source-secret-match-uri-1: https://mydev1.mycorp.com/* build.openshift.io/source-secret-match-uri-2: https://mydev2.mycorp.com/* data: ...
다음을 사용하여 기존 보안에
build.openshift.io/source-secret-match-uri-
주석을 추가합니다.$ oc annotate secret mysecret \ 'build.openshift.io/source-secret-match-uri-1=https://*.mycorp.com/*'