API 키 만들기 및 관리

이 페이지에서는 API 키 API를 사용하여 API 키를 만들고 관리하는 방법을 설명합니다.

API 호출에서 API 키를 사용하는 방법은 Google Cloud APIs, API 키 사용을 참고하세요.

API 키 만들기

CreateKey 메서드를 사용하여 API 키를 만들 수 있습니다. 이 메서드에는 Key 매개변수가 필요합니다. Key 객체의 displayNamerestrictions 필드만 지정할 수 있습니다. CreateKey는 동기 메서드가 아닙니다. 대신 CreateKey을 호출하면 장기 실행 작업이 시작됩니다. 다음 예에서는 제한사항이 없는 API 키를 만들기 위해 CreateKey 호출을 실행합니다.

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
          "displayName" : "Example API key"
        }' \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys'

성공하면 메서드가 응답에서 장기 실행 작업을 반환합니다. 장기 실행 작업 폴링에 설명된 대로 name 필드의 값을 사용하여 operations.get 호출을 반복적으로 실행합니다. operations.get 의 응답에 "done": true가 포함된 경우 response 객체에는 다음과 유사한 Key가 포함됩니다.

{
  "name": "operations/akmf.p7-103621867718-06f94db2-7e91-4c58-b826-e6b80e4dc3eb",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.api.apikeys.v2.Key",
    "name": "projects/PROJECT_NUMBER/locations/global/keys/aecd7943-98ff-4ce2-a876-ec1b37c671ca",
    "displayName": "Example API key",
    "keyString": "----REDACTED----",
    "createTime": "2021-03-23T17:39:46.721099Z",
    "uid": "aecd7943-98ff-4ce2-a876-ec1b37c671ca",
    "updateTime": "2021-03-23T17:39:47.046746Z",
    "etag": "k0bsYGkIvSxDVwNxyw49NQ=="
  }
}

response 객체에서 다음을 수행합니다.

  • name 필드에는 API 키의 고유 식별자가 포함됩니다. 키 이름이 필요한 다른 메서드에서 name 필드의 값을 사용합니다. 이 값은 Google Cloud 콘솔에 표시되지 않지만 ListKeys 메서드를 호출하여 모든 API 키의 names를 가져올 수 있습니다. Key.name 필드는 항상 다음 형식입니다. projects/PROJECT_NUMBER/locations/global/keys/KEY_ID.
  • displayName 필드는 콘솔의 Name 필드에 매핑되므로 CreateKey을 호출할 때 displayName을 제공하는 것이 좋습니다.Google Cloud
  • keyString 필드에는 API 키가 필요한 API로 전송하는 문자열이 포함됩니다. keyStringAPI key 필드에 매핑됩니다. Google Cloud 콘솔. GetKeyString 메서드를 호출하여 API 키의 keyString을 가져올 수 있습니다.
  • etag 필드에는 키의 현재 값을 기준으로 서버에서 계산한 체크섬이 포함됩니다. UpdateKeyDeleteKey 메서드를 호출할 때 etag 값을 전달하세요.

사용자 지정 키 ID

쿼리 매개변수로 CreateKey 메서드를 지정할 수 있습니다.keyId 지정된 경우 이 값은 Key.name의 최종 구성요소가 됩니다.

예를 들어 CreateKey에 대한 다음 호출을 고려해 보세요.

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
          "displayName" : "Example API key with user-specified ID"
        }' \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?keyId=my-test-key1'

이 예에서 Key.name 필드의 값은 다음과 같습니다.

"name": "projects/PROJECT_NUMBER/locations/global/keys/my-test-key1"

표시 이름 업데이트

API 키의 displayName을 변경하거나 displayName 없이 생성된 API 키에 displayName을 추가하려면 UpdateKey 메서드를 호출하세요. UpdateKey를 호출하면 키를 업데이트하는 장기 실행 작업이 시작됩니다.

다음 예에서는 UpdateKey를 호출하는 방법을 보여줍니다.

curl -X PATCH \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d '{
          "displayName": "New display name",
          "etag" : "ETAG"
        }' \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID?updateMask=displayName'

operations.get의 응답에 "done": true가 포함된 경우 response 에는 업데이트된 displayName이 있는 Key 객체가 포함됩니다.

API 키 삭제

API 키를 삭제하려면 DeleteKey 메서드를 사용하세요. DeleteKey를 호출하면 키를 DELETED로 표시하는 장기 실행 작업이 시작됩니다.

다음 예에서는 DeleteKey를 호출하는 방법을 보여줍니다.

curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H 'If-Match: "ETAG"' \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID'

operations.get의 응답에 "done": true가 포함된 경우 response 는 다음과 유사합니다.

{
  "name": "operations/akmf.cdabc4df-cbff-4420-8c7e-65dc832c945d",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.api.apikeys.v2.Key"
    "name": "projects/PROJECT_NUMBER/locations/global/keys/aecd7943-98ff-4ce2-a876-ec1b37c671ca",
    "displayName": "Example API key",
    "keyString": "----REDACTED----",
    "createTime": "2021-03-23T17:39:46.721099Z",
    "uid": "aecd7943-98ff-4ce2-a876-ec1b37c671ca",
    "updateTime": "2021-03-23T17:39:47.046746Z",
    "deleteTime": "2021-03-24T22:35:37.290544Z",
    "etag": "k0bsYGkIvSxDVwNxyw49NQ=="
  }
}

DELETED로 표시된 API 키는 사용할 수 없지만 시스템에서 완전히 삭제되지는 않습니다. 여전히 존재하지만 DELETED로 표시된 API 키를 나열하려면 ListKeys 메서드의 show_deleted를 true로 설정하세요.

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?show_deleted=true'

30일 후에는 API 키가 영구적으로 삭제됩니다.

API 키 복원

API 키가 영구적으로 삭제되기 전에 복원하려면 UndeleteKey 메서드를 호출하세요. UndeleteKey를 호출하면 키를 ACTIVE로 표시하는 장기 실행 작업이 시작됩니다.

다음 예에서는 UndeleteKey를 호출하는 방법을 보여줍니다.

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     'https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID/:undelete'

다음 단계