8.3.4.2. 소스 복제 보안
빌더 Pod는 빌드의 소스로 정의된 모든 Git 리포지토리에 액세스해야 합니다. 소스 복제 보안은 자체 서명되거나 신뢰할 수 없는 SSL 인증서가 있는 프라이빗 리포지토리 또는 리포지토리와 같이 일반적으로 액세스할 수 없는 리포지토리에 대한 액세스 권한을 제공하는 데 사용됩니다.
다음 소스 복제 보안 구성이 지원됩니다.
이러한 구성의 조합을 사용하여 특정 요구 사항을 충족할 수도 있습니다.
빌드는 빌더 서비스 계정으로 실행되며, 사용된 소스 복제 보안에 액세스할 수 있어야 합니다. 액세스 권한은 다음 명령으로 부여됩니다.
oc secrets link builder mysecret
$ oc secrets link builder mysecret
보안을 참조하는 서비스 계정으로만 보안은 기본적으로 비활성화되어 있습니다. 즉, 마스터 구성 파일에서 serviceAccountConfig.limitSecretReferences 가 false (기본 설정)로 설정된 경우 서비스에 보안을 연결할 필요가 없습니다.
8.3.4.2.1. 빌드 구성에 소스 복제 보안 자동 추가 링크 복사링크가 클립보드에 복사되었습니다!
BuildConfig가 생성되면 OpenShift Container Platform에서 소스 복제 보안 참조를 자동으로 채울 수 있습니다. 이 동작을 통해 생성된 빌드 에서 참조된 보안에 저장된 인증 정보를 자동으로 사용하여 추가 구성없이 원격 Git 리포지토리에 인증할 수 있습니다.
이 기능을 사용하려면 Git 리포지토리 자격 증명을 포함하는 보안이 나중에 BuildConfig 를 생성할 네임스페이스에 있어야 합니다. 이 보안에 는 build.openshift.io/source-secret-match-uri- 접두사가 붙은 주석이 하나 이상 포함되어야 합니다. 이러한 주석의 각 값은 다음과 같이 정의된 URI 패턴입니다. 소스 복제 보안 참조 없이 BuildConfig 를 생성하고 해당 Git 소스 URI가 Secret 주석의 URI 패턴과 일치하는 경우 OpenShift Container Platform은 BuildConfig 에 해당 Secret 에 자동으로 참조를 삽입합니다.
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/*'
$ 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에 대한 액세스 권한을 덮어씁니다.
다음을 사용하여 기존 보안에 build.openshift.io/source-secret-match-uri- 주석을 추가합니다.
oc annotate secret mysecret \
'build.openshift.io/source-secret-match-uri-1=https://*.mycorp.com/*'
$ oc annotate secret mysecret \
'build.openshift.io/source-secret-match-uri-1=https://*.mycorp.com/*'