8.3.4.2. 소스 복제 보안
빌더 Pod는 빌드의 소스로 정의된 모든 Git 리포지토리에 액세스해야 합니다. 소스 복제 보안은 자체 서명되거나 신뢰할 수 없는 SSL 인증서가 있는 프라이빗 리포지토리 또는 리포지토리와 같이 일반적으로 액세스할 수 없는 리포지토리에 대한 액세스 권한을 제공하는 데 사용됩니다.
다음 소스 복제 보안 구성이 지원됩니다.
이러한 구성의 조합을 사용하여 특정 요구 사항을 충족할 수도 있습니다.
빌드는 사용된 소스 복제 보안에 대한 액세스 권한이 있어야 하는 builder 서비스 계정으로 실행됩니다. 다음 명령으로 액세스 권한이 부여됩니다.
$ 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는
주석의 URI 패턴과 일치하는 경우 OpenShift Container Platform은 Secret
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/*'