API 키 만들기 및 관리

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

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

시작하기 전에

이 페이지에서는 curl 및 Google Cloud CLI를 사용하여 API 키 API에 요청을 보냅니다. API를 실험하기 위한 설정에 관한 자세한 내용은 API 키 시작하기를 참고하세요.

API 키 만들기

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

gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys -X POST -d '{"displayName" : "Example API key"}'

성공하면 메서드가 응답에서 장기 실행 작업을 반환합니다. 장기 실행 작업 폴링에 설명된 대로 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 필드는Google Cloud 콘솔의 Name 필드에 매핑되므로 CreateKey을 호출할 때 displayName를 제공하는 것이 좋습니다.
  • keyString 필드에는 API 키가 필요한 API에 전송하는 문자열이 포함됩니다. keyString는Google Cloud 콘솔의 API key 필드에 매핑됩니다. GetKeyString 메서드를 호출하여 API 키의 keyString를 가져올 수 있습니다.
  • etag 필드에는 키의 현재 값을 기준으로 서버에서 계산한 체크섬이 포함됩니다. UpdateKeyDeleteKey 메서드를 호출할 때 etag 값을 전달하세요.

사용자 지정 키 ID

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

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

gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?keyId=my-test-key1 -X POST -d '{"displayName" : "Example API key"}'

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

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

표시 이름 업데이트

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

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

gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID?updateMask=displayName -X PATCH -d '{"displayName": "New display name", "etag" : "ETAG"}'

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

API 키 삭제

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

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

gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID?etag="ETAG" -X DELETE

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로 설정합니다.

gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?show_deleted=true

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

API 키 복원

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

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

gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID/:undelete -X POST

다음 단계