시작하기 전에
dataform.restrictGitRemotes
정책을 설정하거나 수정하기 전에 허용 목록에 추가할 원격 Git 저장소의 전체 URL을 찾습니다.
이미 Dataform 저장소에 연결된 원격 Git 저장소의 전체 URL을 찾으려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 Dataform 페이지로 이동합니다.
저장소를 선택한 후 설정을 클릭합니다.
Dataform 페이지에 표시된 원격 저장소의 URL은 단축된 URL이므로
dataform.restrictGitRemotes
정책에 사용될 수 없습니다.설정 페이지의 Git 연결 설정에서 저장소 소스 값을 복사합니다.
저장소 소스 값은 원격 저장소의 전체 URL입니다.
dataform.restrictGitRemotes
정책에서 이 URL을 사용할 수 있습니다.
필요한 역할
조직 정책을 관리하는 데 필요한 권한을 얻으려면 관리자에게 조직의 조직 정책 관리자(roles/orgpolicy.policyAdmin
) IAM 역할을 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 조직 정책을 관리하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
조직 정책을 관리하려면 다음 권한이 필요합니다.
-
orgpolicy.constraints.list
-
orgpolicy.policies.create
-
orgpolicy.policies.delete
-
orgpolicy.policies.list
-
orgpolicy.policies.update
-
orgpolicy.policy.get
-
orgpolicy.policy.set
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
원격 Git 저장소 제한 정보
Dataform 저장소를 GitHub 또는 GitLab 저장소에 연결할 수 있습니다.
악의적인 행위자가 보호되지 않는 저장소 사본을 통해 Dataform 코드베이스 및 액세스 토큰에 액세스하지 못하도록 Dataform 저장소가 연결할 수 있는 원격 저장소 풀을 제한해야 할 수 있습니다.
조직 정책 서비스를 사용하여 Dataform에서 연결할 수 있는 Git 저장소 URL을 제한하는 조직 정책을 만들 수 있습니다.
Dataform에서 원격 Git 저장소를 제한하는 제약조건은 다음과 같습니다.
constraints/dataform.restrictGitRemotes
제약조건을 사용하려면 Dataform 저장소에 연결할 수 있는 원격 Git 저장소의 URL의 allowedValues
목록을 사용하여 조직 정책을 만듭니다.
원격 Git 저장소는 전체 URL 주소로 식별됩니다.
dataform.restrictGitRemotes
정책은 소급 적용되므로 제약조건이 기존 Dataform 저장소에 영향을 미칩니다.
조직 정책이 적용되면 Dataform 저장소는 allowedValues
목록에 나열된 원격 Git 저장소에만 연결할 수 있습니다. 조직 정책에 명시적으로 정의되지 않은 원격 Git 저장소는 Dataform 저장소에 연결할 수 없습니다.
dataform.restrictGitRemotes
정책을 설정하지 않으면 Dataform 저장소와 원격 Git 저장소 간의 통신이 제한되지 않습니다.
dataform.restrictGitRemotes
정책은 다음과 같은 방법으로 사용할 수 있습니다.
Allow all
- Dataform 저장소는 모든 원격 저장소 URL에 연결할 수 있습니다. 조직에서 원격 저장소와의 통신을 차단하지 않으려는 경우 이 옵션을 선택합니다. 또는 모든 원격 저장소 URL을 허용하려면 조직 정책을 설정하지 않은 상태로 두면 됩니다.
- URL의
allowedValues
목록 - Dataform 저장소는 허용된 원격 저장소에만 연결할 수 있습니다. 데이터 무단 반출을 방지하려면 이 옵션을 선택합니다.
Deny all
- Dataform 저장소는 원격 URL에 연결할 수 없습니다. 조직에서 모든 통신을 차단하고 Dataform 저장소를 사용하려는 경우 이 옵션을 선택합니다.
허용되는 원격 Git 저장소 사양
이 목록 제약조건은 GitHub 및 GitLab 저장소에만 적용할 수 있습니다.
조직 정책은 소급 적용되며 기존 Dataform 저장소에 영향을 미칩니다.
이 제약조건은
allowedValues
를 수락하여 다른 모든 원격 Git 저장소 또는Deny all
에 대한 연결을 차단합니다. 기본값은Allow all
입니다. 설정되지 않은 조직 정책은 모든 원격 Git 저장소와의 통신을 허용합니다. 조직 정책을allowedValues
로 설정하는 것이 좋습니다.이는 사용자 본인 또는 정책을 관리하고 유지보수하는 데 필요한 권한이 있는 관리자의 책임입니다. 조직 내 정책 관리자에 대한 커뮤니케이션을 보장해야 합니다.
조직 수준에서 조직 정책 제약조건 설정
콘솔
- /조직 정책/조직 정책 페이지로 이동합니다.
- 필요한 경우 프로젝트 드롭다운 메뉴에서 필요한 조직을 선택합니다.
- Dataform의 git 원격 저장소 제한을 클릭합니다.
- 정책 관리를 클릭합니다. 정책 관리 버튼을 클릭할 수 없으면 적절한 권한이 없는 것입니다.
맞춤설정을 선택하여 특정 원격 Git 저장소의 조직 정책을 설정합니다.
필요한 정책 시행 및 정책 유형을 선택합니다.
정책 값에서 커스텀을 선택합니다.
원격 Git 저장소의 전체 URL을 입력합니다.
새 정책 값을 클릭하고 필요에 따라 원격 Git 저장소의 전체 URL을 입력합니다.
저장을 클릭하여 제약조건을 적용합니다.
gcloud
원격 Git 저장소에 대해 제약조건을 설정하려면 먼저 조직 ID가 필요합니다. organizations list
명령어를 실행하고 응답에서 숫자 ID를 찾아 조직 ID를 찾을 수 있습니다.
gcloud organizations list
gcloud CLI는 조직 목록을 다음 형식으로 반환합니다.
DISPLAY_NAME ID example-organization1 29252605212 example-organization2 1234567890
gcloud resource-manager org-policies set-policy
명령어를 사용하여 조직 정책을 설정합니다. 정책을 JSON 또는 YAML 파일로 제공해야 합니다.
다음 형식으로 JSON 파일을 만듭니다.
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
ORGANIZATION_ID
를 조직의 숫자 ID로 바꿉니다.
Dataform 저장소에서 원격 Git 저장소에 연결할 수 없도록 하려면 denyAll
을 true
로 설정하여 조직 정책을 설정하면 됩니다.
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "denyAll": true } ] } }
ORGANIZATION_ID
를 조직의 숫자 ID로 바꿉니다.
API
setOrgPolicy()
API를 사용하여 제약조건을 정의합니다. Dataform은 사용자가 지정한 allowedValue
목록의 원격 Git 저장소 URL에 연결할 수 있습니다.
예를 들어 다음은 선택한 원격 Git 저장소 Dataform 저장소에서 연결할 수 있는 조직에 dataform.restrictGitRemotes
제약조건을 적용하기 위한 요청입니다.
POST https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies
여기서 ORGANIZATION_ID
는 조직의 숫자 ID입니다.
이제 요청 본문에서 이 제약조건에 필요한 조직 정책을 제공합니다.
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
Replace <code><var>ORGANIZATION_ID</var></code> with the numeric ID
of the organization.
Dataform 저장소에서 원격 Git 저장소에 연결할 수 없도록 하려면 denyAll
을 true
로 설정하여 조직 정책을 설정하면 됩니다.
{ "name": "organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "denyAll": true } ] } }
Replace <code><var>ORGANIZATION_ID</var></code> with the numeric ID
of the organization.
조직 정책이 이미 설정된 경우 조직 정책 정의를 요청 본문으로 사용하여 다음 요청을 실행해야 합니다.
PATCH https://orgpolicy.googleapis.com/v2/organizations/ORGANIZATION_ID/policies/dataform.restrictGitRemotes
프로젝트 수준에서 조직 정책 설정
프로젝트 수준에서 조직 정책을 설정하면 조직 수준의 조직 정책이 재정의되거나 병합됩니다. 병합되는 경우 denyAll
이 allowedValues
보다 우선 적용됩니다. 예를 들어 조직 수준의 조직 정책이 denyAll
로 설정되고 프로젝트 수준의 병합된 정책이 allowedValues
목록에 원격 저장소 URL을 나열하는 경우 Dataform이 원격 저장소에 연결할 수 없습니다. 이 경우 Dataform이 원격 저장소에 연결될 수 있도록 프로젝트 수준의 조직 정책이 조직 수준 정책을 재정의해야 합니다. 조직 정책 계층 구조에 대한 자세한 내용은 계층 구조 평가 이해를 참고하세요.
콘솔
조직 수준에서 조직 정책 제약조건 설정에 설명된 것과 동일한 절차를 따르지만, 조직 대신 프로젝트 선택기에서 원하는 프로젝트를 선택합니다.
gcloud
gcloud resource-manager org-policies set-policy
명령어를 사용하여 조직 정책을 설정합니다. 정책을 JSON 또는 YAML 파일로 제공해야 합니다.
다음 형식으로 JSON 파일을 만듭니다.
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
PROJECT_ID_OR_NUMBER
를 이 조직 정책의 프로젝트 ID 또는 프로젝트 번호로 바꿉니다.
그런 다음 요청을 사용해서 파일을 전달합니다.
gcloud resource-manager org-policies set-policy MY_POLICY.JSON --project=PROJECT_ID
API
setOrgPolicy()
API를 사용하여 제약조건을 정의합니다. Dataform은 사용자가 지정한 allowedValue
목록의 원격 Git 저장소 URL에 연결할 수 있습니다.
예를 들어 다음은 Dataform 저장소가 선택한 원격 Git 저장소에만 연결할 수 있고 constraints/dataform.restrictGitRemotes
정책이 아직 설정되지 않은 조직에 dataform.restrictGitRemotes
제약조건을 적용하기 위한 요청입니다.
POST https://orgpolicy.googleapis.com/v2/projects/PROJECT_ID_OR_NUMBER/policies
요청 본문에는 이 제약조건에 필요한 조직 정책이 포함됩니다.
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
PROJECT_ID_OR_NUMBER
를 이 요청의 프로젝트 ID 또는 프로젝트 번호로 바꿉니다.
다음은 Dataform 저장소가 선택한 원격 Git 저장소에만 연결할 수 있고 constraints/dataform.restrictGitRemotes
정책이 이미 설정된 조직에 dataform.restrictGitRemotes
제약조건을 적용하기 위한 요청입니다.
PATCH https://orgpolicy.googleapis.com/v2/projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes
요청 본문에는 이 제약조건에 필요한 조직 정책이 포함됩니다.
{ "name": "projects/PROJECT_ID_OR_NUMBER/policies/dataform.restrictGitRemotes", "spec": { "rules": [ { "values": { "allowedValues": ["https://github.com/example/allowed-repository.git"] } } ] } }
PROJECT_ID_OR_NUMBER
를 이 요청의 프로젝트 ID 또는 프로젝트 번호로 바꿉니다.
허용되는 Git 원격 저장소 권장사항
데이터 무단 반출 위험을 완화하려면 신뢰할 수 있는 원격 Git 저장소 선택항목을 허용하도록
dataform.restrictGitRemotes
제약조건을 명시적으로 설정합니다.원격 Git 저장소에 연결되지 않은 Dataform 저장소만 사용하는 경우
dataform.restrictGitRemotes
제약조건을Deny All
로 설정합니다.이 제약조건과 함께
deniedValues
목록을 사용하지 마세요.deniedValues
목록에 값을 정의하면deniedValues
목록의 원격 Git 저장소만 연결이 제한됩니다. Dataform이 연결할 수 있는 원격 Git 저장소를 정확하게 제어해야 하는 경우 보안상 문제가 될 수 있습니다.allowedValues
목록에서 특정 원격 Git 저장소를 삭제하려면 하위 계층의deniedValues
목록에 넣는 대신allowedValues
목록에서 이를 삭제하도록 기존 조직 정책을 업데이트합니다.리소스 계층의 대부분에 적용할 정책을 설정하되 특정 프로젝트를 제외시키려면 프로젝트의 모든 Dataform 저장소가 원격 Git 저장소와 연결될 수 있도록
restoreDefault
객체를 지정하여setOrgPolicy
메서드를 사용하여 기본 조직 정책을 복원해야 합니다. 프로젝트에 현재 적용된 정책은 기본 설정의 영향을 받지 않습니다.조직 정책을 IAM 역할과 함께 사용하면 Dataform 코드베이스에 대한 액세스를 보다 효과적으로 제어할 수 있습니다.
조직 정책이 사용 설정된 조직 또는 프로젝트 내의 모든 Dataform 저장소에 이 정책이 적용됩니다. 이것이 문제가 될 경우에는 조직 정책이 적용되지 않는 다른 프로젝트에서 다른 서비스 및 제품을 설정하고 필요한 경우 공유 VPC를 사용하는 것이 좋습니다.
dataform.restrictGitRemotes
정책을 설정하기 전에 조직 정책 및 조직 내 관리자에 대한 커뮤니케이션을 보장해야 합니다. 이는 사용자 본인 또는 정책을 관리하고 유지보수하는 데 필요한 권한이 있는 관리자의 책임입니다.
다음 단계
- 조직 정책에 대한 자세한 내용은 조직 정책 서비스 소개를 참조하세요.
- 조직 정책 제약조건에 대한 자세한 내용은 조직 정책 제약조건을 참조하세요.
- Resource Manager를 사용하여 Google Cloud 리소스를 관리하는 방법은 Google Cloud 리소스 관리를 참조하세요.