권한 구성

이 주제에서는 Cloud 애셋 인벤토리 API를 호출하는 데 필요한 권한과 사용자 인증 정보를 구성하는 방법을 설명합니다.

인증

Cloud 애셋 인벤토리 API를 호출하려면 먼저 최종 사용자 또는 서비스 계정으로 인증해야 합니다. 인증에 대한 자세한 내용은 인증 개요를 참조하세요.

gcloud 도구에 필요한 권한 부여

gcloud 도구를 사용하여 Cloud 애셋 인벤토리 API에 액세스하려면 대상 리소스의 상위 요소(조직, 프로젝트 또는 폴더)에 필요한 권한을 부여해야 합니다. API 요청의 parent 필드에 이 상위 요소를 지정해야 합니다.

계정이 리소스의 상위 요소에 Cloud 애셋 소유자 역할(roles/cloudasset.owner) 또는 소유자 기본 역할(roles/owner)을 가지고 있다면 Cloud 애셋 인벤토리 API를 호출할 수 있는 충분한 권한이 있으며. 사용자 인증 정보 다운로드로 건너뛸 수 있습니다. Cloud 애셋 인벤토리 역할에 대한 자세한 내용은 역할을 참조하세요.

역할 부여

계정에 역할을 부여하려면 gcloud 명령줄 도구를 사용하여 다음 단계를 완료합니다. gcloud 도구 설치 및 초기화 방법을 알아보세요.

사용자 계정

사용자 계정에 필요한 역할을 부여하려면 다음 단계를 완료하세요.

  1. 사용자 계정으로 로그인하려면 다음 명령어를 실행합니다.

    gcloud auth login USER_ACCOUNT_EMAIL
    
  2. 사용자 계정에 루트(상위) 리소스에 대한 Cloud 애셋 뷰어 역할 (roles/cloudasset.viewer) 또는 Cloud 애셋 소유자 역할 (roles/cloudasset.owner)을 부여합니다. 이 프로젝트는 Cloud 애셋 인벤토리 API가 사용 설정된 프로젝트일 수 있습니다.

    사용자 계정에 Cloud 애셋 뷰어 역할을 부여하려면 다음 명령어를 실행하세요.

    gcloud projects add-iam-policy-binding TARGET_PROJECT_ID \
         --member user:USER_ACCOUNT_EMAIL \
         --role roles/cloudasset.viewer
    

    gcloud asset 명령어에 --billing-project 플래그를 추가하여 Cloud 애셋 인벤토리 API가 사용 설정된 결제 프로젝트를 지정할 수 있습니다.

    --billing-project PROJECT_ID
    

    이 플래그를 지정하면, 계정이 프로젝트 PROJECT_ID에 대한 serviceusage.services.use 권한을 필요로 합니다. 이 권한을 포함하여 사전 정의된 역할 목록은 역할 이해를 참조하세요.

서비스 계정

서비스 계정에 필요한 역할을 부여하려면 다음 단계를 완료하세요. 서비스 계정에 대한 자세한 내용은 서비스 계정 생성 및 관리를 참조하세요.

  1. 새 서비스 계정을 만들려면 다음 명령어를 실행하세요. Cloud 애셋 인벤토리 API가 사용 설정된 프로젝트에 서비스 계정이 이미 있는 경우에는 이 단계를 건너뛸 수 있습니다.

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
           --display-name "SERVICE_ACCOUNT_DISPLAY_NAME"
    
  2. 서비스 계정에 루트(상위) 리소스에 대한 Cloud 애셋 뷰어 역할 (roles/cloudasset.viewer) 또는 Cloud 애셋 소유자 역할 (roles/cloudasset.owner)을 부여합니다. 이 프로젝트는 Cloud 애셋 인벤토리 API가 사용 설정된 프로젝트와 동일할 수 있습니다.

    서비스 계정에 Cloud 애셋 뷰어 역할을 부여하려면 다음 명령어를 실행하세요.

    gcloud projects add-iam-policy-binding TARGET_PROJECT_ID \
            --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
            --role roles/cloudasset.viewer
    
  3. 서비스 계정의 비공개 키를 만들려면 다음 명령어를 실행하세요.

    gcloud iam service-accounts keys create YOUR_FILE_PATH/key.json \
            --iam-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    
  4. gcloud 도구에서 사용할 서비스 계정을 활성화하려면 다음 명령어를 실행하세요.

    gcloud auth activate-service-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
            --key-file=YOUR_FILE_PATH/key.json
    

JSON 사용자 인증 정보 다운로드

gcloud 도구 없이 Cloud 애셋 인벤토리 API에 액세스하려면 JSON 사용자 인증 정보 파일이 필요합니다. 파일을 다운로드하려면 다음 단계를 완료하세요.

  1. Cloud Console의 사용자 인증 정보 페이지로 이동합니다.

    사용자 인증 정보 페이지로 이동

  2. + 사용자 인증 정보 만들기를 선택한 후 OAuth 클라이언트 ID를 선택합니다.

  3. 새 프로젝트의 클라이언트 ID를 만드는 경우 먼저 OAuth 동의 화면을 설정해야 합니다. Cloud Console은 클라이언트 ID를 사용하는 애플리케이션이 비공개 데이터에 대한 액세스를 요청할 때마다 동의 화면을 표시합니다.

    동의 화면을 구성하려면 다음 단계를 완료하세요.

    1. 동의 화면 구성을 선택한 다음 필수 정보를 입력합니다.

    2. 변경사항을 저장합니다.

  4. 클라이언트 ID 만들기 페이지의 애플리케이션 유형에서 적절한 유형을 선택합니다. 클라이언트 유형에 대한 자세한 내용은 OAuth 2.0 설정을 참조하세요.

  5. 사용자 인증 정보의 이름을 입력한 후 만들기를 클릭합니다.

  6. 확인을 클릭하여 열리는 대화상자를 닫습니다.1

  7. 새 클라이언트 ID JSON 파일을 저장하려면 를 클릭합니다.

  8. 다운로드한 JSON 파일의 이름을 바꾸고 사용자에게 편리한 경로로 이동할 수 있습니다. 다음 예시에서는 ~/credentials.json 경로를 사용합니다.

사용자 인증 정보 설정 확인

사용자 인증 정보를 올바르게 설정했는지 확인하려면 다음 명령어를 실행하세요.2

   oauth2l header --json ~/credentials.json cloud-platform
   

다음과 비슷한 출력이 표시됩니다.

Authorization: Bearer y29.xxxxxxx

셸 별칭 정의

셸 별칭을 정의하여 Google Cloud REST API를 호출하는 것이 편리할 수 있습니다.

Google Cloud REST API를 호출하는 gcurl 별칭을 정의하려면 다음 명령어를 실행하세요.

   alias gcurl='curl -H "$(oauth2l header --json ~/credentials.json \
     cloud-platform)" -H "Content-Type: application/json" '