2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

서비스 계정의 키를 사용하여 Cloud Run에 배포하는 방법은?

_____
Q1: Cloud Run에 서비스 계정 키를 사용하여 배포하는 이유는 무엇인가요?
A1: 자동화된 배포 파이프라인 또는 CI/CD 환경에서 인증을 위해 서비스 계정 키를 사용합니다. 이는 개인 사용자 인증 대신 서비스 계정 권한으로 작업을 수행할 수 있도록 도와줍니다.

Q2: 서비스 계정 키는 어떻게 생성하나요?
A2:
1. GCP 콘솔에서 [IAM 및 관리자 > 서비스 계정]으로 이동합니다.
2. 원하는 서비스 계정을 선택하거나 새로 만듭니다.
3. '키' 탭에서 '키 추가' > '새 키 만들기'를 선택 후 JSON 형식으로 다운로드합니다.

Q3: 서비스 계정에 어떤 권한이 필요하나요?
A3: Cloud Run 배포를 위해서는 보통 `Cloud Run Admin` 역할(`roles/run.admin`)과 `Storage Admin` 역할(`roles/storage.admin`), 그리고 `Service Account User` 역할(`roles/iam.serviceAccountUser`)이 필요합니다.

Q4: 서비스 계정 키를 이용해 로컬에서 gcloud 인증을 어떻게 하나요?
A4: 터미널에서 다음 명령어를 실행합니다.
```
gcloud auth activate-service-account --key-file=PATH/TO/KEY.json
```

Q5: 서비스 계정 키를 활용해 Cloud Run 서비스에 배포하는 방법은?
A5: 인증 후 다음과 같이 배포합니다.
```
gcloud run deploy SERVICE_NAME --image IMAGE_URL --region REGION --platform managed
```
이때, `gcloud auth activate-service-account`로 인증된 계정 권한으로 배포가 진행됩니다.

Q6: CI/CD 환경에서 서비스 계정 키를 안전하게 사용하는 방법은?
A6:

- 키 파일은 코드 저장소에 직접 저장하지 않습니다.
- CI/CD 파이프라인의 비밀 관리 도구(예: GitHub Secrets, GitLab CI Variables, Google Secret Manager)를 사용해 키를 안전하게 주입합니다.
- 배포 스크립트에서 환경 변수 또는 임시 파일로 키를 로드하여 인증을 수행합니다.

Q7: 서비스 계정 키 기반 인증 대신 권장하는 방법은 무엇인가요?
A7: 가능한 경우 Workload Identity Federation, Cloud Build 서비스 계정, 또는 `gcloud auth login`을 통한 OAuth 인증 같은 최신 인증 방식을 권장합니다. 키 관리를 자동화 및 간소화할 수 있고 보안 위험이 줄어듭니다.

요약:
1. 서비스 계정 생성 및 키(JSON) 다운로드
2. 필요한 역할 부여
3. `gcloud auth activate-service-account --key-file=KEY.json`으로 인증
4. `gcloud run deploy` 명령 실행하여 배포
5. CI/CD 환경에서는 키를 안전하게 관리 및 주입

이 과정을 통해 서비스 계정 키를 사용하여 Cloud Run에 안전하게 배포할 수 있습니다.
Cloud Run은 Google Cloud Platform(GCP)에서 제공하는 서버리스 컴퓨팅 서비스로, 컨테이너화된 애플리케이션을 쉽게 배포하고 관리할 수 있게 해줍니다.

서비스 계정의 키를 사용하여 Cloud Run에 배포하는 방법은 다음과 같습니다.

1. 서비스 계정 생성 먼저, Cloud Run에 배포할 애플리케이션이 사용할 서비스 계정을 생성해야 합니다.

1. GCP 콘솔에 로그인 합니다.



2. IAM 및 관리자 > 서비스 계정 으로 이동합니다.



3. 서비스 계정 만들기 를 클릭합니다.



4. 서비스 계정의 이름과 설명을 입력하고 만들기 를 클릭합니다.



5. 필요한 역할을 추가합니다.

Cloud Run에 배포하기 위해서는 `Cloud Run Admin` 역할을 부여해야 합니다.



6. 완료 를 클릭하여 서비스 계정을 생성합니다.



2. 서비스 계정 키 생성 서비스 계정 키를 생성하여 애플리케이션이 GCP 리소스에 접근할 수 있도록 합니다.

1. 생성한 서비스 계정을 클릭합니다.



2. 키 탭으로 이동합니다.



3. 키 추가 > 새 키 만들기 를 클릭합니다.



4. JSON 형식을 선택하고 만들기 를 클릭합니다.



5. JSON 파일이 다운로드됩니다.

이 파일은 나중에 애플리케이션에서 인증을 위해 사용됩니다.



3. Dockerfile 작성 Cloud Run에 배포할 애플리케이션을 컨테이너화하기 위해 Dockerfile을 작성합니다.

예를 들어, Node.js 애플리케이션의 경우 다음과 같은 Dockerfile을 사용할 수 있습니다.

```dockerfile Node.js 이미지를 기반으로 합니다.

FROM node:14 작업 디토리를 설정합니다.

WORKDIR /usr/src/app 패키지 파일을 복사하고 의존성을 설치합니다.

COPY package*.json ./ RUN npm install 애플리케이션 소스를 복사합니다.

COPY . . 애플리케이션을 실행합니다.

CMD ["npm", "start"] Cloud Run에서 사용할 포트를 설정합니다.

EXPOSE 8080 ```

4. Docker 이미지 빌드 및 푸시 Docker 이미지를 빌드하고 Google Container Registry(GCR) 또는 Artifact Registry에 푸시합니다.

```bash Docker 이미지 빌드 docker build -t gcr.io/[PROJECT_ID]/[IMAGE_NAME]:[TAG] . Docker 이미지 푸시 docker push gcr.io/[PROJECT_ID]/[IMAGE_NAME]:[TAG] ``` 여기서 `[PROJECT_ID]`, `[IMAGE_NAME]`, `[TAG]`는 각각 GCP 프로젝트 ID, 이미지 이름, 태그로 대체해야 합니다.



5. Cloud Run에 배포 이제 Cloud Run에 이미지를 배포할 수 있습니다.

서비스 계정 키를 사용하여 인증을 설정합니다.

```bash gcloud CLI를 사용하여 Cloud Run에 배포 gcloud run deploy [SERVICE_NAME] \ --image gcr.io/[PROJECT_ID]/[IMAGE_NAME]:[TAG] \ --platform managed \ --region [REGION] \ --service-account [SERVICE_ACCOUNT_EMAIL] \ --allow-unauthenticated ``` 여기서 `[SERVICE_NAME]`, `[REGION]`, `[SERVICE_ACCOUNT_EMAIL]`는 각각 서비스 이름, 지역, 서비스 계정 이메일로 대체해야 합니다.



6. 서비스 계정 키를 애플리케이션에 통합 애플리케이션에서 GCP API에 접근할 때 서비스 계정 키를 사용하여 인증을 수행해야 합니다.

JSON 키 파일을 안전하게 저장하고, 애플리케이션에서 이를 로드하여 인증을 수행합니다.

예를 들어, Node.js에서는 다음과 같이 사용할 수 있습니다.

```javascript const { GoogleAuth } = require('google-auth-library'); async function authenticate() { const auth = new GoogleAuth({ keyFilename: 'path/to/service-account-key.json', scopes: ['https://www.googleapis.com/auth/cloud-platform'], }); const client = await auth.getClient(); const projectId = await auth.getProjectId(); // GCP API 호출 예시 const url = `https://your-api-endpoint`; const res = await client.request({ url }); console.log(res.data); } ```

7. 배포 확인 배포가 완료되면 Cloud Run 대시보드에서 서비스의 URL을 확인할 수 있습니다.

이 URL을 통해 애플리케이션에 접근할 수 있습니다.

결론 이와 같이 서비스 계정의 키를 사용하여 Cloud Run에 애플리케이션을 배포하는 과정은 비교적 간단합니다.

서비스 계정을 통해 애플리케이션이 GCP 리소스에 안전하게 접근할 수 있도록 설정하는 것이 중요합니다.

이 과정에서 보안에 유의하고, 서비스 계정 키 파일은 안전하게 관리해야 합니다.

작성자: 박시연 [비회원] | 작성일자: 1년 전 2024-12-18 16:51:52
조회수: 165 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.