서비스 계정은 Google Cloud에서 한 시스템의 구성요소 및 애플리케이션이 서로 그리고 다른 API와 상호작용할 수 있게 해주는 특별한 유형의 계정입니다. Google Cloud에 대한 자세한 내용은 Google Cloud 서비스 정보를 참조하세요.
하이브리드는 Google Cloud 서비스 계정을 사용하여 다음과 같은 다양한 작업을 수행합니다.
- 로그 및 측정항목 데이터 전송
- trace 요청 가져오기
- 관리 API 요청을 위해 API 게이트웨이에 연결
- 백업 실행
- 프록시 번들 다운로드
하나의 서비스 계정으로 이러한 모든 작업을 수행할 수도 있지만 각각 특정 작업에 할당되고 자체 권한 집합을 포함하는 여러 서비스 계정을 만드는 것이 좋습니다. 이렇게 하면 액세스를 분류하고 각 서비스 계정의 범위와 액세스 권한을 제한함으로써 보안이 강화됩니다. 사용자 계정과 마찬가지로 이러한 권한은 서비스 계정에 하나 이상의 역할을 할당하여 적용됩니다.
하이브리드 구성요소에서 사용하는 서비스 계정 및 역할
제대로 작동하려면 Apigee Hybrid에서는 여러 서비스 계정을 만들어야 합니다. 각 서비스 계정에는 특정 역할 또는 기능을 수행할 수 있도록 하는 역할이 필요합니다.
다음 표에서는 하이브리드 구성요소의 서비스 계정을 설명합니다.
구성요소* | 역할 | 기본 설치 시 필요 여부 | 설명 |
---|---|---|---|
apigee-cassandra |
스토리지 객체 관리자roles/storage.objectAdmin |
백업 및 복구에 설명된 대로 Cloud Storage로 Cassandra 백업을 허용합니다. | |
apigee-distributed-trace |
Cloud Trace 에이전트roles/cloudtrace.agent |
하이브리드 런타임 영역이 Google Cloud Trace 및 Jaeger와 같은 시스템과 호환되는 형식으로 분산 요청 추적에 참여하도록 허용합니다. | |
apigee-logger |
로그 작성자roles/logging.logWriter |
Logging에 설명된 대로 로깅 데이터 수집을 허용합니다. 비GKE 클러스터 설치에만 필요합니다. | |
apigee-mart |
Apigee Connect 에이전트roles/apigeeconnect.Agent |
MART 서비스 인증을 허용합니다. Apigee Connect 에이전트 역할은 Apigee Connect 사용에 설명된 대로 Apigee Connect 프로세스와 안전하게 통신할 수 있도록 합니다. | |
apigee-metrics |
모니터링 측정항목 작성자roles/monitoring.metricWriter |
측정항목 수집 개요에 설명된 대로 측정항목 데이터 수집을 허용합니다. | |
apigee-org-admin |
Apigee 조직 관리자roles/apigee.admin |
getSyncAuthorization API 및 setSyncAuthorization API를 호출할 수 있습니다. Apigee 조직 관리자는 런타임 영역의 외부 역할이므로 create-service-account 도구를 사용하여 서비스 계정에 이 역할을 할당할 수 없습니다. |
|
apigee-synchronizer |
Apigee 동기자 담당자 관리자roles/apigee.synchronizerManager |
동기화 담당자가 프록시 번들 및 환경 구성 데이터를 다운로드하도록 허용합니다. 또한 trace 기능의 작업을 사용 설정합니다. | |
apigee-udca |
Apigee 애널리틱스 에이전트roles/apigee.analyticsAgent |
추적, 분석, 배포 상태 데이터를 관리 영역에 전송할 수 있습니다. | |
apigee-watcher |
Apigee 런타임 에이전트roles/apigee.runtimeAgent |
Apigee Watcher는 조직에 대한 가상 호스트 관련 변경사항을 동기화 담당자로부터 가져오고 istio 인그레스를 구성하는 데 필요한 변경사항을 적용합니다. | |
* 이 이름은 다운로드한 서비스 계정 키의 파일 이름에 사용됩니다. |
이 표에 나열된 서비스 계정을 만드는 것 외에 비공개 키도 다운로드합니다. 나중에 Apigee API에 액세스할 수 있도록 이 키를 사용하여 액세스 토큰을 생성합니다.
서비스 계정 만들기
다음과 같은 여러 가지 방법으로 서비스 계정을 만들 수 있습니다.
다음 섹션에서 이러한 항목을 설명합니다.
서비스 계정 생성 도구 사용
create-service-account
도구(apigeectl
다운로드 및 확장 후에 사용 가능)는 하이브리드 구성요소별 서비스 계정을 만들고 필요한 역할을 할당합니다. 또한 이 도구는 서비스 계정 키를 자동으로 다운로드하여 지정된 디렉터리의 로컬 머신에 저장합니다.
create-service-account
도구로 서비스 계정을 만들려면 다음 안내를 따르세요.
- (아직 설치하지 않은 경우) apigeectl 다운로드 및 설치에 설명된 대로
apigeectl
를 다운로드하고 확장합니다. - 서비스 계정 키를 저장할 디렉터리를 만듭니다. 예를 들면 다음과 같습니다.
mkdir ./service-accounts
- 다음 명령어를 실행합니다.
./tools/create-service-account apigee-metrics ./service-accounts
./tools/create-service-account apigee-synchronizer ./service-accounts
./tools/create-service-account apigee-distributed-trace ./service-accounts
./tools/create-service-account apigee-udca ./service-accounts
./tools/create-service-account apigee-mart ./service-accounts
./tools/create-service-account apigee-cassandra ./service-accounts
./tools/create-service-account apigee-logger ./service-accounts
이러한 명령어는 대부분의 필요한 계정을 만들고 키를
./service-accounts
디렉터리에 저장합니다.이러한 명령어가 실패하면 키 파일을 저장할 기존 디렉터리를 참조했는지 확인합니다.
create-service-account
사용에 대한 자세한 내용은 create-service-account 참조를 확인하세요.
Google Cloud Console 사용
Google Cloud Console을 사용하여 서비스 계정을 만들 수 있습니다.
Google Cloud Console로 서비스 계정을 만들려면 다음 안내를 따르세요.
- Google Cloud 콘솔을 열고 1단계: Google Cloud 계정 만들기에서 만든 사용자 계정으로 로그인합니다.
- 2단계: Google Cloud 프로젝트 만들기에서 만든 프로젝트를 선택합니다.
- IAM 및 관리자 > 서비스 계정을 선택합니다.
Console에 서비스 계정 뷰가 표시됩니다. 이 뷰에는 프로젝트의 서비스 계정 목록이 표시됩니다. (대부분의 경우 아직 계정이 목록에 없지만 프로젝트를 만든 방법에 따라 목록에 기본 서비스 계정이 있을 수 있습니다.)
- 새 서비스 계정을 만들려면 뷰 상단에 있는 +서비스 계정 만들기를 클릭합니다.
서비스 계정 세부정보 보기가 표시됩니다.
- 서비스 계정 이름 필드에 서비스 계정 이름을 입력합니다.
Apigee에서는 서비스 계정의 역할을 반영하는 이름을 사용하는 것이 좋습니다. 서비스 계정의 이름을 사용하는 구성요소와 동일한 이름으로 설정할 수 있습니다. 예를 들어 로그 작성자 서비스 계정
apigee-logger
의 이름을 설정합니다.서비스 계정 이름 및 역할에 대한 자세한 내용은 하이브리드 구성요소에서 사용하는 서비스 계정 및 역할을 참조하세요.
이름을 입력하면 Google Cloud가 고유한 서비스 계정 ID를 생성합니다. 이 ID는 다음 예시에 표시된 것처럼 이메일 주소와 같은 형식입니다.
필요한 경우 서비스 계정 설명 필드에 설명을 추가할 수 있습니다. 설명은 특정 서비스 계정의 용도를 알리는 데 유용합니다.
- 만들기를 클릭합니다.
Google Cloud가 새 서비스 계정을 만들고 다음 예시에 표시된 것처럼 서비스 계정 권한을 표시합니다.
이 보기를 사용하여 새 서비스 계정에 역할을 할당합니다.
- 역할 선택 드롭다운 목록을 클릭합니다.
- 하이브리드 구성요소에서 사용하는 서비스 계정 및 역할에 설명된 대로 서비스 계정의 역할을 선택합니다. Apigee 역할이 드롭다운 목록에 표시되지 않으면 페이지를 새로고침합니다.
예를 들어 로깅 구성 요소의 경우 로그 작성자 역할을 선택합니다.
필요한 경우 텍스트를 입력하여 이름으로 역할 목록을 필터링합니다. 예를 들어 Apigee 역할만 나열하려면 다음 예시와 같이 필터 필드에
Apigee
를 입력합니다.서비스 계정에 역할을 두 개 이상 추가할 수 있지만 각 권장 서비스 계정에 하나의 역할만 사용하는 것이 좋습니다. 서비스 계정을 만든 후 역할을 변경하려면 Google Cloud에서 IAM 및 관리자 패널을 사용합니다.
- 계속을 클릭합니다.
Google Cloud에 사용자에게 이 서비스 계정에 대한 액세스 권한 부여 뷰가 표시됩니다.
- 키 만들기(선택사항)에서 키 만들기를 클릭합니다.
Google Cloud에는 JSON 또는 P12 키 다운로드 옵션이 있습니다.
- JSON(기본값)을 선택하고 만들기를 클릭합니다.
Google Cloud는 JSON 형식의 키 파일을 로컬 머신에 저장하고 다음 예시에 표시된 것처럼 성공하면 확인을 표시합니다.
나중에 서비스 계정 키를 사용하여 하이브리드 런타임 서비스를 구성합니다. 예를 들어 하이브리드 런타임을 구성할 때 SERVICE_NAME
.serviceAccountPath
속성을 사용하여 서비스 계정 키의 위치를 지정합니다.이 키는 서비스 계정에서 액세스 토큰을 가져오는 데 사용되며, 서비스 계정에서 이를 사용하여 사용자 대신 Apigee API에 대한 요청을 수행합니다. (아직은 그렇지 않으므로 지금은 저장한 위치를 기억하세요.)
- 하이브리드 구성요소에서 사용하는 서비스 계정 및 역할에 나열된 각 서비스 계정(연결된 역할이 없으므로 역할을 할당하지 않아야 하는
apigee-mart
계정 제외)에 대해 4~11단계를 반복합니다.완료되었으면 다음과 같은 서비스 계정이 있어야 합니다(기본값이 있는 경우 이 외에도).
Google Cloud Console에서 서비스 계정에는 아이콘이 표시됩니다.
서비스 계정을 만든 후 서비스 계정에 역할을 추가하거나 삭제하려면 IAM 및 관리자 뷰를 사용해야 합니다. 서비스 계정 뷰에서 서비스 계정의 역할을 관리할 수 없습니다.
gcloud 서비스 계정 생성 API 사용
Cloud Identity and Access Management API로 서비스 계정을 만들고 관리할 수 있습니다.
자세한 내용은 서비스 계정 만들기 및 관리를 참조하세요.