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

서비스 계정의 키를 사용하여 Cloud Pub/Sub에 구독하는 방법은?

_____
Q1: Cloud Pub/Sub에 서비스 계정 키를 사용해 구독하려면 어떤 준비가 필요한가요?
A1: 먼저 Google Cloud 프로젝트 내에 적절한 권한(예: Pub/Sub Subscriber 역할)이 할당된 서비스 계정을 생성하고, 해당 서비스 계정의 JSON 키 파일을 다운로드해야 합니다.

Q2: 서비스 계정 키 파일로 인증을 어떻게 하나요?
A2: JSON 키 파일을 사용하는 방법은 환경 변수 `GOOGLE_APPLICATION_CREDENTIALS`를 설정하는 것입니다. 예를 들어, 터미널에서 다음과 같이 설정합니다:
```
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account-key.json"
```

Q3: 서비스 계정 키를 사용하여 구독 메시지를 받는 예제 코드는 어떻게 되나요?
A3: Python 기준으로, 구독하는 기본적인 코드는 다음과 같습니다.

```python
from google.cloud import pubsub_v1

JSON 키 파일 경로 설정(환경 변수 또는 직접 설정 가능)
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/path/to/service-account-key.json"

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path('your-project-id', 'your-subscription-name')

def callback(message):
print(f"Received message: {message.data.decode('utf-8')}")
message.ack()

streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback)
print(f"Listening for messages on {subscription_path}...")

try:
streaming_pull_future.result()
except KeyboardInterrupt:
streaming_pull_future.cancel()
```

Q4: 다른 언어 또는 도구에서 서비스 계정 키를 이용하려면 어떻게 해야 하나요?
A4: Google Cloud SDK나 다른 Google Cloud 클라이언트 라이브러리에서도 비슷하게 `GOOGLE_APPLICATION_CREDENTIALS` 환경 변수를 설정하거나, 라이브러리 초기화 시 키 파일 경로를 지정해 인증할 수 있습니다.

Q5: 키 파일 없이도 서비스 계정으로 인증 가능한가요?
A5: 네, 만약 애플리케이션이 Google Cloud 내 환경(예: Compute Engine, GKE, Cloud Run 등)에서 실행된다면, 해당 환경의 기본 서비스 계정을 통해 자동으로 인증할 수 있으므로 JSON 키 파일이 불필요할 수 있습니다.

Q6: 서비스 계정 키 관리 시 주의사항은 무엇인가요?
A6: 키 파일은 안전하게 보관해야 하며, 공개 저장소나 외부에 노출되지 않도록 주의합니다. 필요하지 않으면 키를 삭제하고, 키 관리 정책에 따라 주기적으로 회전하는 것이 좋습니다.
Cloud Pub/Sub는 Google Cloud Platform(GCP)에서 제공하는 메시징 서비스로, 비동기적으로 메시지를 전송하고 수신할 수 있는 기능을 제공합니다.

서비스 계정의 키를 사용하여 Cloud Pub/Sub에 구독하는 방법에 대해 자세히 설명하겠습니다.

1. 서비스 계정 생성 및 키 다운로드 1. Google Cloud Console에 로그인 : [Google Cloud Console](https://console.cloud.google.com/)에 로그인합니다.



2. 프로젝트 선택 : Cloud Pub/Sub를 사용할 프로젝트를 선택합니다.



3. IAM 및 관리자 : 왼쪽 사이드바에서 "IAM 및 관리자"를 클릭한 후 "서비스 계정"을 선택합니다.



4. 서비스 계정 생성 : - "서비스 계정 만들기" 버튼을 클릭합니다.

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



5. 역할 부여 : 서비스 계정에 필요한 역할을 부여합니다.

Pub/Sub 구독을 위해서는 `Pub/Sub Subscriber` 역할을 부여해야 합니다.



6. 키 생성 : - 서비스 계정이 생성된 후, 해당 서비스 계정을 클릭합니다.

- "키" 탭으로 이동하여 "키 추가"를 클릭한 후 "새 키 만들기"를 선택합니다.

- JSON 형식의 키를 선택하고 "만들기"를 클릭합니다.

이때 생성된 JSON 파일이 다운로드됩니다.

이 파일은 서비스 계정의 인증에 사용됩니다.



2. Pub/Sub 구독 생성 1. Pub/Sub 주제 생성 : 구독할 주제가 없다면 먼저 주제를 생성해야 합니다.

- Cloud Console에서 "Pub/Sub"를 선택하고 "주제"를 클릭합니다.

- "주제 만들기" 버튼을 클릭하고 주제 이름을 입력한 후 "만들기"를 클릭합니다.



2. 구독 생성 : - 생성한 주제를 클릭하고 "구독 만들기"를 선택합니다.

- 구독 이름을 입력하고 구독 유형(푸시 또는 풀)을 선택합니다.

- 필요한 설정을 완료한 후 "만들기"를 클릭합니다.



3. 서비스 계정을 사용하여 Pub/Sub 구독하기 이제 서비스 계정을 사용하여 Pub/Sub에 구독할 수 있습니다.

아래는 Python을 사용한 예제입니다.



3.1. 필요한 라이브러리 설치 ```bash pip install google-cloud-pubsub ```

3.2. 코드 작성 ```python import os from google.cloud import pubsub_v1 서비스 계정 키 파일 경로 설정 os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/your/service-account-file.json" 구독 ID와 프로젝트 ID 설정 project_id = "your-project-id" subscription_id = "your-subscription-id" Pub/Sub 클라이언트 생성 subscriber = pubsub_v1.SubscriberClient() 구독 경로 생성 subscription_path = subscriber.subscription_path(project_id, subscription_id) 메시지 수신 콜백 함수 정의 def callback(message): print(f"Received message: {message.data}") message.ack() 메시지 확인 구독 시작 streaming_pull_future = subscriber.subscribe(subscription_path, callback=callback) print(f"Listening for messages on {subscription_path}...\n") 예외 처리 및 종료 try: streaming_pull_future.result() except KeyboardInterrupt: streaming_pull_future.cancel() ```

4. 코드 실행 위의 코드를 실행하면 지정한 구독에서 메시지를 수신하기 시작합니다.

서비스 계정의 키를 사용하여 인증을 수행하므로, 해당 키 파일의 경로를 정확히 지정해야 합니다.



5. 보안 및 관리 - 키 관리 : 서비스 계정 키는 민감한 정보이므로 안전하게 관리해야 합니다.

키가 유출되면 해당 서비스 계정의 권한이 악용될 수 있습니다.

- IAM 정책 : 서비스 계정에 부여된 역할을 정기적으로 검토하고 최소 권한 원칙을 준수해야 합니다.

- 키 회전 : 주기적으로 서비스 계정 키를 회전하여 보안을 강화하는 것이 좋습니다.

이와 같은 방법으로 서비스 계정을 사용하여 Cloud Pub/Sub에 구독할 수 있습니다.

이를 통해 비동기 메시징 시스템을 구축하고, 다양한 애플리케이션 간의 통신을 효율적으로 관리할 수 있습니다.

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