API 키 만들기 및 관리

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

Google Cloud API에 대한 API에 API 키를 사용하는 방법에 대한 자세한 내용은 API 키 사용을 참조하세요.

시작하기 전에

이 페이지에서는 oauth2l 명령줄 도구와 함께 curl를 사용하여 API 키의 API에 요청을 보냅니다. API를 설정하기 위한 자세한 내용은 API 키 시작하기를 참조하세요.

API 키 만들기

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

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 Console에 표시되지 않지만 ListKeys 메서드를 호출하여 모든 API 키에 대해 names를 가져올 수 있습니다. Key.name 필드의 형식은 항상 projects/PROJECT_NUMBER/locations/global/keys/KEY_ID입니다.
  • displayName 필드는 Cloud Console의 Name 필드에 매핑되므로 CreateKey 호출 시 displayName를 제공하는 것이 좋습니다.
  • keyString 필드에는 API 키가 필요한 API로 전송되는 문자열이 포함됩니다. keyString은 Cloud Console의 API key 필드에 매핑됩니다. GetKeyString 메서드를 호출하여 API 키에 keyString를 가져올 수 있습니다.
  • etag 필드에는 키의 현재 값을 기반으로 서버에서 계산된 체크섬이 포함됩니다. UpdateKeyDeleteKey 메서드를 호출할 때 etag 값을 전달하세요.

사용자 지정 키 ID

keyIdCreateKey 메서드에 대한 쿼리 매개변수로 지정할 수 있습니다. 이 값을 지정하면 값은 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 키 클론

동일한 Cloud 프로젝트에서 API 키의 사본을 만들려면 CloneKey 메서드를 사용합니다. CloneKey를 호출하면 원래의 키와 동일한 displayNamerestrictions가 포함된 키를 만드는 새로운 장기 실행 작업이 시작되어 새로운 namekeyString 값.

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

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

operations.get의 응답에 "done": true가 포함된 경우 response는 새 Key 객체를 포함합니다.

새 키의 displayNamerestrictions는 원래의 키와 동일하지만 새로운 namekeyString입니다.

표시 이름 업데이트

API 키의 displayName을 변경하거나, API 키를 만들지 않고 생성된 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 키는 사용할 수 없지만 Google 시스템에서 완전히 삭제되지는 않습니다. 30일이 지나면 API 키가 영구적으로 삭제됩니다. ListKeys 메서드에 필터를 추가하여 DELETED로 표시된 API 키를 반환할 수 있습니다.

gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID?filter=state:DELETED

API 키 복원

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

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

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

다음 단계