서비스 계정의 키를 사용하여 Cloud Build를 설정하는 방법은?
_____A1: 먼저 Google Cloud 콘솔에서 프로젝트에 적합한 서비스 계정을 생성하거나 기존 계정을 선택합니다. 그런 다음 해당 서비스 계정에 필요한 권한(예: Cloud Build Editor, Storage Admin 등)을 할당하고, 서비스 계정 키를 JSON 형식으로 생성하여 안전하게 저장해야 합니다.
Q2: 서비스 계정 키 파일을 생성하는 방법은 무엇인가요?
A2:
1. Google Cloud 콘솔에서 [IAM 및 관리자] > [서비스 계정]으로 이동합니다.
2. 원하는 서비스 계정을 선택하거나 새로 생성합니다.
3. “키” 탭을 클릭하고 “키 추가” > “새 키 만들기”를 선택합니다.
4. JSON 형식의 키를 선택하고 생성하면 파일이 다운로드됩니다.
Q3: 이 키 파일을 Cloud Build에서 어떻게 사용하나요?
A3: 보통 Cloud Build 트리거나 빌드 구성에서 해당 키를 사용해 인증을 설정합니다. 예를 들어, 빌드 스텝 내에서 gcloud CLI나 애플리케이션이 이 키를 참조하도록 환경변수로 `GOOGLE_APPLICATION_CREDENTIALS` 경로를 지정하거나, 빌드 환경에 키 파일 내용을 시크릿으로 저장하여 사용합니다.
Q4: Cloud Build에 서비스 계정 키를 직접 업로드하는 안전한 방법은 무엇인가요?
A4: 직접 키 파일을 빌드 구성에 포함하는 것은 권장되지 않습니다. 대신 Google Cloud Secret Manager에 키 파일을 저장한 후 Cloud Build가 빌드 과정에서 Secret Manager에서 키를 안전하게 가져와 사용하도록 설정하는 것이 안전한 방법입니다.
Q5: 빌드 YAML 파일에서 서비스 계정 키를 참조하는 예시는?
A5:
```yaml
steps:
- name: 'gcr.io/cloud-builders/gcloud'
entrypoint: 'bash'
args:
- '-c'
echo $KEY_FILE > /tmp/key.json
export GOOGLE_APPLICATION_CREDENTIALS=/tmp/key.json
gcloud auth activate-service-account --key-file=/tmp/key.json
추가 빌드 명령어
secrets:
- kmsKeyName: projects/PROJECT_ID/locations/global/keyRings/KEYRING/cryptoKeys/KEY
secretEnv:
KEY_FILE: '암호화된_키_내용'
```
Q6: 권한과 역할 설정 시 어떤 점에 유의해야 하나요?
A6: 필요한 최소 권한 원칙에 따라 서비스 계정에 반드시 필요한 역할만 부여해야 합니다. 예를 들어, Cloud Build가 소스 저장소에 접근해야 한다면 `roles/source.reader`를, GCR에 이미지를 푸시하려면 `roles/storage.admin` 혹은 `roles/artifactregistry.writer` 등이 적절합니다.
Q7: 키 관리를 위한 권장 보안 수칙은 무엇인가요?
A7:
- 키 파일은 절대 코드 저장소에 포함하지 않습니다.
- 정기적으로 키를 교체하고, 사용하지 않는 키는 삭제합니다.
- 키를 외부에 노출시키지 않습니다.
- Cloud Secret Manager를 활용해 안전하게 관리합니다.
- Cloud IAM 정책을 엄격하게 유지합니다.
---
요약하자면, 서비스 계정 키를 이용해 Cloud Build를 설정할 때는 키 파일 생성 → 안전한 저장(Secret Manager 권장) → 빌드 구성에서 키 참조 → 최소 권한 적용 → 키 관리 보안 수칙 준수의 순서로 진행하는 것이 좋습니다.
Cloud Build를 사용하면 소스 코드를 자동으로 빌드하고 테스트하며 배포할 수 있습니다.
서비스 계정의 키를 사용하여 Cloud Build를 설정하는 방법에 대해 자세히 설명하겠습니다.
1. 서비스 계정 생성 1. Google Cloud Console에 로그인 : [Google Cloud Console](https://console.cloud.google.com/)에 로그인합니다.
2. 프로젝트 선택 : Cloud Build를 사용할 프로젝트를 선택합니다.
3. IAM 및 관리자 : 왼쪽 사이드바에서 "IAM 및 관리자"를 클릭한 후 "서비스 계정"을 선택합니다.
4. 서비스 계정 만들기 : - "서비스 계정 만들기" 버튼을 클릭합니다.
- 서비스 계정의 이름과 설명을 입력합니다.
- "만들기"를 클릭합니다.
5. 역할 할당 : - 서비스 계정에 필요한 역할을 할당합니다.
Cloud Build를 사용하기 위해서는 `Cloud Build Editor` 또는 `Cloud Build Service Account` 역할을 부여해야 합니다.
- "계속"을 클릭합니다.
6. 키 생성 : - "키 만들기" 옵션에서 "JSON" 형식을 선택하고 "만들기"를 클릭합니다.
- JSON 키 파일이 다운로드됩니다.
이 파일은 나중에 Cloud Build에서 인증을 위해 사용됩니다.
2. Cloud Build API 활성화 1. API 및 서비스 : 왼쪽 사이드바에서 "API 및 서비스"를 클릭한 후 "라이브러리"를 선택합니다.
2. Cloud Build API 검색 : "Cloud Build API"를 검색하고 선택합니다.
3. API 활성화 : "활성화" 버튼을 클릭하여 Cloud Build API를 활성화합니다.
3. Cloud Build 구성 파일 작성 Cloud Build는 `cloudbuild.yaml` 또는 `cloudbuild.json` 파일을 사용하여 빌드 프로세스를 정의합니다.
이 파일은 소스 코드의 루트 디렉토리에 위치해야 합니다.
예를 들어, `cloudbuild.yaml` 파일의 기본 구조는 다음과 같습니다: ```yaml steps: - name: 'gcr.io/cloud-builders/gcc' args: ['-o', 'hello', 'hello.c'] - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'gcr.io/$PROJECT_ID/hello', '.'] images: - 'gcr.io/$PROJECT_ID/hello' ```
4. Cloud Build 트리거 설정 1. Cloud Build 트리거 : Cloud Build에서 자동으로 빌드를 실행하려면 트리거를 설정해야 합니다.
"Cloud Build" 메뉴에서 "트리거"를 선택합니다.
2. 트리거 만들기 : "트리거 만들기" 버튼을 클릭합니다.
3. 트리거 구성 : - 소스 저장소를 선택하고, 브랜치 또는 태그를 지정합니다.
- 빌드 구성 파일의 경로를 지정합니다 (예: `cloudbuild.yaml`). - "만들기"를 클릭하여 트리거를 생성합니다.
5. Cloud Build 실행 이제 설정이 완료되었습니다.
소스 코드가 변경되면 설정한 트리거에 따라 Cloud Build가 자동으로 실행됩니다.
수동으로 빌드를 실행하려면 다음 명령어를 사용할 수 있습니다: ```bash gcloud builds submit --config cloudbuild.yaml . ```
6. 서비스 계정 키 사용 서비스 계정 키를 사용하여 Cloud Build를 실행하려면, 다음과 같은 방법으로 인증을 설정할 수 있습니다.
1. 환경 변수 설정 : JSON 키 파일의 경로를 환경 변수로 설정합니다.
```bash export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-file.json" ```
2. gcloud CLI 인증 : gcloud CLI를 사용하여 인증합니다.
```bash gcloud auth activate-service-account --key-file=/path/to/your/service-account-file.json ``` 이제 Cloud Build를 사용할 준비가 완료되었습니다.
서비스 계정 키를 사용하여 Cloud Build를 설정하고, CI/CD 파이프라인을 자동화할 수 있습니다.
결론 Google Cloud Build는 강력한 CI/CD 도구로, 서비스 계정을 통해 안전하게 인증하고 자동화된 빌드 및 배포 프로세스를 설정할 수 있습니다.
위의 단계를 따르면 Cloud Build를 효과적으로 설정하고 사용할 수 있습니다.
작성자:
박지혜 [비회원]
| 작성일자: 1년 전
2024-12-18 16:51:53
조회수: 131 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 131 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.