서비스 계정 정보

서비스 계정은 Google Cloud에서 한 시스템의 구성요소 및 애플리케이션이 서로 그리고 다른 API와 상호작용할 수 있게 해주는 특별한 유형의 계정입니다. Google Cloud에 대한 자세한 내용은 Google Cloud 서비스 정보를 참조하세요.

Apigee Hybrid는 Google Cloud 서비스 계정을 사용하여 다음과 같은 다양한 작업을 수행합니다.

  • 로그 및 측정항목 데이터 전송
  • trace 요청 가져오기
  • 관리 API 요청을 위해 API 게이트웨이에 연결
  • 백업 실행
  • 프록시 번들 다운로드

하나의 서비스 계정으로 이러한 모든 작업을 수행할 수도 있지만 프로덕션 환경의 경우 Apigee에서는 각각 특정 태스크에 할당되고 자체 권한 집합을 포함하는 여러 서비스 계정을 만드는 것이 좋습니다. 이렇게 하면 액세스를 분류하고 각 서비스 계정의 범위와 액세스 권한을 제한함으로써 보안이 강화됩니다. 사용자 계정과 마찬가지로 이러한 권한은 서비스 계정에 하나 이상의 역할을 할당하여 적용됩니다.

제대로 작동하려면 Apigee Hybrid에서는 여러 서비스 계정을 만들어야 합니다. 각 서비스 계정에는 특정 역할 또는 기능을 수행할 수 있도록 하는 역할이 필요합니다.

다음 표에서는 하이브리드 구성요소의 서비스 계정을 설명합니다. 각 서비스 계정에 부여되는 이름은 기본 이름입니다. 무엇이든 원하는 이름을 사용할 수 있지만 각 계정의 목적에 맞게 쉽게 식별할 수 있는 이름이어야 합니다.

구성요소* 역할 기본 설치 시 필요 여부 설명
apigee-cassandra 스토리지 객체 관리자
roles/storage.objectAdmin
백업 및 복구에 설명된 대로 Cloud Storage로 Cassandra 백업을 허용합니다.
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-runtime 역할 필요 없음 Apigee Hybrid 런타임을 Google 인증, Google Cloud TraceJaeger와 같은 Google Cloud의 Google 서비스 및 커스텀 서비스에 연결할 수 있도록 합니다.
apigee-synchronizer Apigee 동기화 담당자 관리자
roles/apigee.synchronizerManager
동기화 담당자가 프록시 번들 및 환경 구성 데이터를 다운로드하도록 허용합니다. 또한 trace 기능의 작업을 사용 설정합니다.
apigee-udca Apigee 애널리틱스 에이전트
roles/apigee.analyticsAgent
추적, 분석, 배포 상태 데이터를 관리 영역에 전송할 수 있습니다.
apigee-watcher Apigee 런타임 에이전트
roles/apigee.runtimeAgent
Apigee Watcher는 조직에 대한 가상 호스트 관련 변경사항을 동기화 담당자로부터 가져오고 istio 인그레스를 구성하는 데 필요한 변경사항을 적용합니다.
* 이 이름은 다운로드한 서비스 계정 키의 파일 이름에 사용됩니다.

또는 비프로덕션, 테스트, 데모 환경에 대해 모든 역할이 할당된 단일 서비스 계정을 사용할 수 있습니다. 프로덕션 환경에서는 권장되지 않습니다.

구성요소* 역할 기본 설치 시 필요 여부 설명
apigee-non-prod Apigee 애널리틱스 에이전트, Apigee Connect 에이전트, Apigee 조직 관리자, Apigee 런타임 에이전트, Apigee 동기화 담당자 관리자, Cloud Trace 에이전트, 로그 작성자, 모니터링 측정항목 작성자, 스토리지 객체 관리자 또는 위의 모든 필수 SA 데모 또는 테스트 환경용 단일 서비스 계정 설치, 2부, 5단계: 서비스 계정 만들기를 참조하세요.

이 표에 나열된 서비스 계정을 만드는 것 외에도 Apigee API에 액세스할 수 있도록 각 계정 비공개 키를 사용하여 액세스 토큰을 생성합니다. create-service-account 도구는 서비스 계정을 만들거나 업데이트할 때 로컬 머신의 디렉터리에 키 파일을 자동으로 다운로드합니다.

서비스 계정 만들기

다음과 같은 여러 가지 방법으로 서비스 계정을 만들 수 있습니다.

다음 섹션에서 이러한 항목을 설명합니다.

create-service-account 도구 사용

create-service-account 도구는 Apigee Hybrid Helm 차트 또는 apigeectl을 다운로드하여 확장한 후에 사용할 수 있습니다. 다음 디렉터리에서 create-service-account 도구를 찾을 수 있습니다.

  • Helm 차트 설치:
    APIGEE_HELM_CHARTS_HOME/
    └── apigee-operator/
        └── etc/
            └── tools/
                └── create-service-account
    
  • apigeectl 설치:
    APIGEECTL_HOME/
    └── tools/
        └── create-service-account
    

    create-service-account는 하이브리드 구성요소 특정 서비스 계정이 필요한 역할을 할당합니다. 또한 이 도구는 서비스 계정 키를 자동으로 다운로드하여 로컬 머신에 저장합니다.

    예를 들어 다음 명령어는 프로덕션 환경에 대해 모든 개별 서비스 계정을 만들고, 각 서비스 계정에 적절한 IAM 역할을 할당하고, 각 계정의 비공개 키 파일을 ./service-accounts 디렉터리에 다운로드합니다.

    ./tools/create-service-account --env prod

    다음 명령어는 데모 및 테스트 환경에 적합하지만 프로덕션 환경에 적합하지 않은 모든 하이브리드 구성요소에 대해 모든 IAM 역할이 있는 apigee-non-prod라는 단일 서비스 계정을 만듭니다.

    ./tools/create-service-account --env non-prod

    create-service-account 사용에 대한 자세한 내용은 create-service-account 참조를 확인하세요.

    Google Cloud Console 사용

    Google Cloud Console을 사용하여 서비스 계정을 만들 수 있습니다.

    Google Cloud Console에서 서비스 계정을 만들고 서비스 계정에 대해 키를 생성하려면 다음을 수행합니다.

    1. 서비스 계정을 만듭니다.

      1. Cloud Console에서 서비스 계정 페이지로 이동합니다.

        서비스 계정으로 이동

      2. 프로젝트를 선택합니다.
      3. 서비스 계정 만들기를 클릭합니다.
      4. 서비스 계정 이름 필드에 이름을 입력합니다. Cloud Console은 이 이름을 기반으로 서비스 계정 ID 필드를 채웁니다.

        Apigee에서는 서비스 계정의 역할을 반영하는 이름을 사용하는 것이 좋습니다. 서비스 계정의 이름을 사용하는 구성요소와 동일한 이름으로 설정할 수 있습니다. 예를 들어 로그 작성자 서비스 계정 apigee-logger의 이름을 설정합니다.

        서비스 계정 이름 및 역할에 대한 자세한 내용은 하이브리드 구성요소에서 사용하는 서비스 계정 및 역할을 참조하세요.

      5. 선택사항: 서비스 계정 설명 입력란에 서비스 계정에 대한 설명을 입력합니다. 설명은 특정 서비스 계정의 용도를 알리는 데 유용합니다.
      6. 만들고 계속하기를 클릭합니다.
      7. 하이브리드 구성요소에 사용되는 서비스 계정 및 역할에 설명된 대로 역할 선택 필드를 클릭하고 역할을 선택합니다. Apigee 역할이 드롭다운 목록에 표시되지 않으면 페이지를 새로고침합니다.

        예를 들어 로깅 구성 요소의 경우 로그 작성자 역할을 선택합니다.

        필요한 경우 텍스트를 입력하여 이름으로 역할 목록을 필터링합니다. 예를 들어 Apigee 역할만 나열하려면 필터 필드에 Apigee를 입력합니다.

        서비스 계정에 역할을 두 개 이상 추가할 수 있지만 각 권장 서비스 계정에 하나의 역할만 사용하는 것이 좋습니다. 서비스 계정을 만든 후 역할을 변경하려면 Cloud Console에서 IAM 페이지를 사용합니다.

      8. 계속을 클릭합니다.

        Google Cloud에 사용자에게 이 서비스 계정에 대한 액세스 권한 부여 뷰가 표시됩니다.

        서비스 계정 사용자 역할 및 서비스 계정 관리자 역할에 대한 필드, 키 만들기 버튼

      9. 키 만들기(선택사항)에서 키 만들기를 클릭합니다.

        Google Cloud에는 JSON 또는 P12 키 다운로드 옵션이 있습니다.

        JSON 또는 P12 키 유형 선택

      10. JSON(기본값)을 선택하고 만들기를 클릭합니다.

        Google Cloud는 JSON 형식의 키 파일을 로컬 머신에 저장하고 다음 예시에 표시된 것처럼 성공하면 확인을 표시합니다.

        예시 filename.json

        나중에 서비스 계정 키를 사용하여 하이브리드 런타임 서비스를 구성합니다. 예를 들어 하이브리드 런타임을 구성할 때 SERVICE_NAME.serviceAccountPath 속성을 사용하여 서비스 계정 키의 위치를 지정합니다.

        이 키는 서비스 계정에서 액세스 토큰을 가져오는 데 사용되며, 서비스 계정에서 이를 사용하여 사용자 대신 Apigee API에 대한 요청을 수행합니다. (아직은 그렇지 않으므로 지금은 저장한 위치를 기억하세요.)

      11. 하이브리드 구성요소에서 사용하는 서비스 계정 및 역할에 나열된 각 서비스 계정(연결된 역할이 없으므로 역할을 할당하지 않아야 하는 apigee-mart 계정 제외)에 대해 4~11단계를 반복합니다.

        완료되었으면 다음과 같은 서비스 계정이 있어야 합니다(기본값이 있는 경우 이 외에도).

        서비스 계정 목록입니다. 열 1 선택 상자, 열 2 이메일, 열 3 상태, 열 4 서비스 계정 이름

        Google Cloud Console에서 서비스 계정에는 왼쪽 측면 키, 오른쪽 측면 직사각형 절반, 모두 밑줄 표시 아이콘이 표시됩니다.

      서비스 계정을 만든 후 서비스 계정에 역할을 추가하거나 삭제하려면 IAM 및 관리자 뷰를 사용해야 합니다. 서비스 계정 뷰에서 서비스 계정의 역할을 관리할 수 없습니다.

      gcloud 서비스 계정 생성 API 사용

      Cloud Identity and Access Management API로 서비스 계정을 만들고 관리할 수 있습니다.

      자세한 내용은 서비스 계정 만들기 및 관리를 참조하세요.

      문제 해결