API에 대한 액세스 권한 부여 및 취소

API에 대한 액세스 권한 부여 대상을 제어하는 것은 개발 과정의 핵심입니다. 예를 들어 API를 테스트할 때 권한이 있는 서비스 계정을 사용하여 업데이트된 Cloud Endpoints 구성 재배치를 자동화하려고 할 수 있습니다. 기본적으로 프로젝트 소유자만 API 액세스를 관리할 수 있습니다. 이 페이지에서는 Cloud Console 또는 gcloud 명령줄 도구를 사용하여 API 액세스 권한을 부여하고 취소하는 방법을 보여줍니다.

Endpoints는 ID 및 액세스 관리 역할을 사용하여 API 수준에서 액세스 권한을 부여하고 취소합니다. 사용자, 서비스 계정 또는 Google 그룹스에 대한 액세스 권한을 부여하고 취소할 수 있습니다.

Google 그룹스를 사용하면 편리하게 여러 사용자에게 액세스 권한을 부여하거나 취소할 수 있습니다. 개별 사용자 또는 서비스 계정에 대해 한 번에 하나씩 액세스 권한을 부여하거나 취소하는 대신 전체 그룹에 대한 액세스 권한을 한 번에 부여하거나 취소할 수 있습니다. 또한 각 구성원에 대한 IAM 역할을 부여하거나 취소하는 대신 Google 그룹에 구성원을 쉽게 추가하고 삭제할 수 있습니다.

액세스 권한 부여

Cloud Console

  1. Cloud Console에서 프로젝트의 Endpoints > 서비스 페이지로 이동합니다.

    Endpoints 서비스 페이지로 이동

  2. API가 두 개 이상이면 API 이름을 클릭합니다.
  3. 권한 측면 패널이 열려 있지 않으면 권한을 클릭합니다.
  4. 구성원 추가 상자에 사용자, 서비스 계정 또는 Google 그룹스의 이메일 주소를 입력합니다.
  5. 역할 선택 드롭다운에서 Service Management를 클릭하고 다음 역할 중 하나를 선택합니다.
    • 서비스 소비자: 이 역할은 프로젝트 구성원이 아닌 사용자가 자신의 고유 프로젝트에서 API를 보고 사용 설정할 수 있는 권한을 포함합니다. API용 포털을 만든 경우 API 사용자는 이 역할을 통해 포털에 액세스할 수 있습니다.
    • 서비스 컨트롤러:이 역할에는 런타임 중에 서비스 인프라 API에서 check report 메서드를 호출할 수 있는 권한이 포함됩니다.
    • 서비스 구성 편집자: 이 역할에는 Service Management가 Endpoints 구성을 기존 서비스에 배포하는 데 필요한 최소한의 권한이 포함되어 있습니다.
    • Service Management 관리자: 이 역할에는 서비스 구성 편집자, 서비스 소비자, 서비스 컨트롤러 역할의 권한과 리소스에 대한 액세스 권한 부여, 변경, 취소에 설명된 gcloud 또는 프로그래매틱 메서드를 사용하여 이 API에 대한 액세스 권한을 부여하는 데 필요한 권한이 포함되어 있습니다.

    이 역할에 대한 자세한 내용은 Service Management API 액세스 제어 항목을 참조하세요. Cloud Console에서는 다른 역할을 선택할 수 있지만 이러한 역할은 API 관리에 유용하지 않습니다.

  6. 지정된 IAM 역할에 구성원을 추가하려면 추가를 클릭합니다.
  7. 필요에 따라 구성원 추가와 역할 선택을 반복합니다.
  8. Service Management 역할은 사용자가 Cloud Console의 Endpoints > 서비스 페이지에 액세스하는 것을 허용하지 않습니다. 사용자가 Endpoints > 서비스 페이지에 액세스할 수 있게 하려면 프로젝트에 대한 프로젝트 뷰어 이상의 역할을 부여해야 합니다. 자세한 내용은 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.

gcloud

  1. Cloud Shell을 열거나, Cloud SDK가 설치된 경우 터미널 창을 엽니다.
  2. 해당 gcloud 명령어를 입력합니다.
    • 사용자에게 액세스 권한을 부여하려면 다음을 실행합니다.
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      역할에 대해 다음 IAM 역할 중 하나를 지정합니다.

      • roles/servicemanagement.configEditor: 이 역할에는 Service Management에서 Endpoints 구성을 기존 서비스에 배포하는 데 필요한 최소 권한이 포함됩니다.
      • roles/servicemanagement.admin: 이 역할에는 roles/servicemanagement.configEditor, roles/servicemanagement.serviceConsumer, roles/servicemanagement.serviceController, 리소스에 대한 액세스 권한 부여, 변경, 취소에 설명된 gcloud 또는 프로그래매틱 메서드를 사용하여 이 API에 대한 액세스 권한을 부여하는 데 필요한 권한이 포함되어 있습니다.

      예를 들면 다음과 같습니다.

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/servicemanagement.admin'

    • 서비스 계정에 대한 액세스 권한을 부여하려면 다음을 실행합니다.
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      예를 들면 다음과 같습니다.

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'

    • Google 그룹스에 액세스 권한을 부여하려면 다음을 실행합니다.
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='group:[GROUP-NAME]@googlegroups.com' \
        --role='[ROLE]'

      예를 들면 다음과 같습니다.

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='group:example-group@googlegroups.com' \
        --role='roles/servicemanagement.configEditor'

  3. Service Management 역할은 사용자가 Cloud Console의 Endpoints > 서비스 페이지에 액세스하는 것을 허용하지 않습니다. 사용자가 Endpoints > 서비스 페이지에 액세스할 수 있게 하려면 프로젝트에 대한 프로젝트 뷰어 이상의 역할을 부여해야 합니다. 자세한 내용은 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.

액세스 권한 취소

API에 대한 액세스 권한을 취소하려면 이전에 해당 역할을 갖고 있던 구성원에서 IAM 역할을 삭제합니다.

Cloud Console

  1. Cloud Console에서 프로젝트의 Endpoints > 서비스 페이지로 이동합니다.

    Endpoints 서비스 페이지로 이동

  2. API가 두 개 이상이면 API 이름을 클릭합니다.
  3. 권한 측면 패널이 열려 있지 않으면 권한을 클릭합니다.
  4. 액세스 권한을 취소하려는 구성원을 찾습니다. 해당 역할 카드를 클릭하여 구성원 목록을 보거나 구성원 검색 상자에 이름 또는 역할을 입력할 수 있습니다.
  5. 삭제 를 클릭합니다.
  6. Google Cloud 프로젝트의 사용자 액세스 권한을 취소하려는 경우 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.

gcloud

  1. Cloud Shell을 열거나, Cloud SDK가 설치된 경우 터미널 창을 엽니다.
  2. 해당 gcloud 명령어를 입력합니다.
    • 사용자의 액세스 권한을 취소하려면 다음을 실행합니다.
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      예를 들면 다음과 같습니다.

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/editor'
    • 서비스 계정의 액세스 권한을 취소하려면 다음을 실행합니다.
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      예를 들면 다음과 같습니다.

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'
    • Google 그룹스의 액세스 권한을 취소하려면 다음을 실행합니다.
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
            --member='group:[GROUP-NAME]@googlegroups.com' \
            --role='[ROLE-NAME]'

      예를 들면 다음과 같습니다.

      gcloud endpoints services remove-iam-policy-binding example-service-name \
            --member='group:example-group@googlegroups.com' \
            --role='roles/viewer'
  3. Google Cloud 프로젝트의 사용자 액세스 권한을 취소하려는 경우 리소스에 대한 액세스 권한 부여, 변경, 취소를 참조하세요.

다음 단계

다음 사항에 대해 알아보세요.