이 페이지에서는 API 키 API를 사용하여 API 키를 만들고 관리하는 방법을 설명합니다.
API 호출에서 API 키를 사용하는 방법은 Google Cloud APIs, API 키 사용을 참고하세요.
API 키 만들기
CreateKey 메서드를 사용하여 API 키를 만들 수 있습니다. 이 메서드에는
Key 매개변수가 필요합니다.
Key 객체의 displayName 및 restrictions 필드만 지정할 수 있습니다.
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 CloudkeyString필드에는 API 키가 필요한 API로 전송하는 문자열이 포함됩니다.keyString은API key필드에 매핑됩니다. Google Cloud 콘솔.GetKeyString메서드를 호출하여 API 키의keyString을 가져올 수 있습니다.etag필드에는 키의 현재 값을 기준으로 서버에서 계산한 체크섬이 포함됩니다.UpdateKey및DeleteKey메서드를 호출할 때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'