Esta página explica como criar e gerenciar chaves de API usando a API de chaves de API.
Para informações sobre como usar uma chave de API com suas chamadas para as APIs do Google Cloud, consulte Como usar chaves de API.
Antes de começar
A página usa curl
com a ferramenta de linha de comando oauth2l para enviar solicitações à API de chaves de API. Consulte Primeiros passos com as chaves de API para detalhes sobre como começar a usar a API.
Criar chave de API
É possível criar uma chave de API usando o método CreateKey
. O método requer um parâmetro Key
.
Você só pode especificar os campos displayName
e restrictions
do objeto Key
.
O CreateKey
não é um método síncrono. Em vez disso, quando você envia uma chamada para CreateKey
, inicia uma operação de longa duração. O exemplo a seguir emite uma chamada CreateKey
para criar uma chave de API sem restrições:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys -X POST -d '{"displayName" : "Example API key"}'
Em caso de sucesso, o método retorna uma operação de longa duração na resposta. Conforme descrito emComo pesquisar operações de longa duração, você repete repetidamenteoperations.get
chamadas com o valor daname
campo. Quando a resposta de operations.get
contém "done": true
, o objeto response
contém um Key
, semelhante ao seguinte:
{ "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==" } }
No objeto response
:
- O campo
name
contém um identificador exclusivo para a chave de API. Você usa o valor no camponame
dos outros métodos que exigem um nome de chave. Esse valor não é exibido no Console do Google Cloud, mas é possível chamar o métodoListKeys
para receber onames
de todas as suas chaves de API. O campoKey.name
está sempre no seguinte formato:projects/PROJECT_NUMBER/locations/global/keys/KEY_ID
. - O campo
displayName
é mapeado para o campoName
no Console do Cloud. Portanto, talvez você queira fornecer umdisplayName
ao chamarCreateKey
. - O campo
keyString
contém a string que você envia para as APIs que exigem uma chave de API. OkeyString
é mapeado para o campoAPI key
no Console do Cloud. Você pode chamar o métodoGetKeyString
para conseguir okeyString
de uma chave de API. - O campo
etag
contém uma soma de verificação calculada pelo servidor com base no valor atual da chave. Passe o valoretag
ao chamar os métodosUpdateKey
eDeleteKey
.
Código da chave especificada pelo usuário
Especifique um keyId
como um parâmetro de consulta para o método CreateKey
. Quando especificado, o valor se torna o componente final de Key.name
.
Por exemplo, veja a seguinte chamada para CreateKey
:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys?keyId=my-test-key1 -X POST -d '{"displayName" : "Example API key"}'
Para este exemplo, o campo Key.name
tem o seguinte valor:
"name": "projects/PROJECT_NUMBER/locations/global/keys/my-test-key1"
Como clonar uma chave de API
Para fazer uma cópia de uma chave de API no mesmo projeto do Cloud, use o
método CloneKey
. Ao chamar CloneKey
, você inicia uma operação de longa duração que cria uma chave com a mesma displayName
e restrictions
da chave original, mas novos name
e keyString
.
O exemplo a seguir ilustra como chamar CloneKey
:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID/:clone -X POST
Quando a resposta de operations.get
contém "done": true
, response
contém o novo objeto Key
.
A nova chave tem os mesmos displayName
e restrictions
que a chave original, mas um novo name
e keyString
.
Como atualizar o nome de exibição
Para alterar o displayName
de uma chave de API ou adicionar um displayName
a uma chave de API que foi criada sem uma, chame o método UpdateKey
. Ao chamar UpdateKey
, você inicia uma operação de longa duração que atualiza a chave.
O exemplo a seguir ilustra como chamar 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"}'
Quando a resposta de operations.get
contém "done": true
, response
contém um objeto Key
com a versão atualizada displayName
.
Como excluir uma chave de API
Para excluir uma chave de API, use o método DeleteKey
. Ao chamar DeleteKey
, você inicia uma operação de longa duração que marca a chave como DELETED
.
O exemplo a seguir ilustra como chamar DeleteKey
:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID?etag="ETAG" -X DELETE
Quando a resposta de operations.get
contém "done": true
, response
é semelhante ao seguinte:
{ "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==" } }
Uma chave de API marcada como DELETED
não pode ser usada, mas ela não é completamente removida do nosso sistema. Após 30 dias, a chave de API será excluída permanentemente. É possível adicionar um filtro ao método ListKeys
para retornar chaves de API marcadas como DELETED
:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID?filter=state:DELETED
Como restaurar uma chave de API
Para restaurar uma chave de API antes de excluí-la permanentemente, chame o método UndeleteKey
. Ao chamar UndeleteKey
, você inicia uma operação de longa duração que marca a chave como ACTIVE
.
O exemplo a seguir ilustra como chamar UndeleteKey
:
gcurl https://apikeys.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/keys/KEY_ID/:undelete -X POST
A seguir
- Como conseguir informações sobre chaves de API
- Como adicionar restrições a chaves de API
- Como visualizar registros de auditoria do Cloud
- Solução de problemas