서명 만들기

이 페이지에서는 Google Cloud signBlob 메서드를 사용하여 서명 문자열 또는 정책 문서에서 서명을 만드는 방법을 보여줍니다. 서명은 서명된 URL과 같은 특정 요청에서 사용자 인증 정보로 사용됩니다. 이 가이드에서는 RSA 키를 사용하여 서명을 만듭니다.

시작하기 전에

  1. Enable the Service Account Credentials API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  2. 이 가이드에서 사용하는 서비스 계정에 대한 iam.serviceAccounts.signBlob 권한이 있어야 합니다. iam.serviceAccounts.signBlob 권한은 roles/iam.serviceAccountTokenCreator 역할에 포함되어 있습니다.

  3. 이 가이드에서 사용하는 서비스 계정에는 서명 내에 인코딩된 요청을 수행할 수 있는 권한이 있어야 합니다. 예를 들어 서명을 사용하여 버킷에서 객체 데이터를 읽는 경우 서비스 계정에 객체 데이터를 읽을 수 있는 권한이 있어야 합니다.

서명 만들기

  1. Authorization 헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.

  2. 다음 정보를 포함하는 JSON 파일을 만듭니다.

    {
      "payload": "REQUEST_INFORMATION"
    }

    각 항목의 의미는 다음과 같습니다.

  3. cURL을 사용하여 signBlob 요청으로 IAM API를 호출합니다.

    curl -X POST --data-binary @JSON_FILE_NAME \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:signBlob"

    각 항목의 의미는 다음과 같습니다.

    • JSON_FILE_NAME은 2단계에서 만든 파일의 이름입니다.

    • SERVICE_ACCOUNT_EMAIL은 서명을 만드는 데 사용할 서비스 계정의 이메일 주소입니다. 예를 들면 example-service-account@my-pet-project.iam.gserviceaccount.com입니다.

    성공하면 응답의 signedBlob 필드에 메시지 다이제스트가 반환됩니다. 이는 base64로 인코딩됩니다.

  4. 서명을 완료하려면 메시지 다이제스트가 base64로 디코딩되었는지 확인한 다음 메시지 다이제스트를 16진수로 인코딩합니다.

다음 단계