Red Hat Training
A Red Hat training course is available for OpenShift Container Platform
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/*'