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