Manages keys and performs cryptographic operations in a central cloud service, for direct use by other cloud resources and applications.
- REST Resource: v1.folders
- REST Resource: v1.organizations
- REST Resource: v1.projects
- REST Resource: v1.projects.locations
- REST Resource: v1.projects.locations.ekmConfig
- REST Resource: v1.projects.locations.ekmConnections
- REST Resource: v1.projects.locations.keyHandles
- REST Resource: v1.projects.locations.keyRings
- REST Resource: v1.projects.locations.keyRings.cryptoKeys
- REST Resource: v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions
- REST Resource: v1.projects.locations.keyRings.importJobs
- REST Resource: v1.projects.locations.operations
Service: cloudkms.googleapis.com
To call this service, we recommend that you use the Google-provided client libraries. If your application needs to use your own libraries to call this service, use the following information when you make the API requests.
Discovery document
A Discovery Document is a machine-readable specification for describing and consuming REST APIs. It is used to build client libraries, IDE plugins, and other tools that interact with Google APIs. One service may provide multiple discovery documents. This service provides the following discovery document:
Service endpoint
A service endpoint is a base URL that specifies the network address of an API service. One service might have multiple service endpoints. This service has the following service endpoint and all URIs below are relative to this service endpoint:
- https://cloudkms.googleapis.com
Regional service endpoint
A regional service endpoint is a base URL that specifies the network address of an API service in a single region. A service that is available in multiple regions might have multiple regional endpoints. Select a location to see its regional service endpoint for this service.
REST Resource: v1.folders
| Methods | |
|---|---|
| getAutokeyConfig | GET /v1/{name=folders/*/autokeyConfig}Returns the AutokeyConfigfor a folder or project. | 
| getKajPolicyConfig | GET /v1/{name=folders/*/kajPolicyConfig}Gets the KeyAccessJustificationsPolicyConfigfor a given organization, folder, or project. | 
| updateAutokeyConfig | PATCH /v1/{autokeyConfig.name=folders/*/autokeyConfig}Updates the AutokeyConfigfor a folder. | 
| updateKajPolicyConfig | PATCH /v1/{keyAccessJustificationsPolicyConfig.name=folders/*/kajPolicyConfig}Updates the KeyAccessJustificationsPolicyConfigfor a given organization, folder, or project. | 
REST Resource: v1.organizations
| Methods | |
|---|---|
| getKajPolicyConfig | GET /v1/{name=organizations/*/kajPolicyConfig}Gets the KeyAccessJustificationsPolicyConfigfor a given organization, folder, or project. | 
| updateKajPolicyConfig | PATCH /v1/{keyAccessJustificationsPolicyConfig.name=organizations/*/kajPolicyConfig}Updates the KeyAccessJustificationsPolicyConfigfor a given organization, folder, or project. | 
REST Resource: v1.projects
| Methods | |
|---|---|
| getAutokeyConfig | GET /v1/{name=projects/*/autokeyConfig}Returns the AutokeyConfigfor a folder or project. | 
| getKajPolicyConfig | GET /v1/{name=projects/*/kajPolicyConfig}Gets the KeyAccessJustificationsPolicyConfigfor a given organization, folder, or project. | 
| showEffectiveAutokeyConfig | GET /v1/{parent=projects/*}:showEffectiveAutokeyConfigReturns the effective Cloud KMS Autokey configuration for a given project. | 
| showEffectiveKeyAccessJustificationsEnrollmentConfig | GET /v1/{project=projects/*}:showEffectiveKeyAccessJustificationsEnrollmentConfigReturns the KeyAccessJustificationsEnrollmentConfigof the resource closest to the given project in hierarchy. | 
| showEffectiveKeyAccessJustificationsPolicyConfig | GET /v1/{project=projects/*}:showEffectiveKeyAccessJustificationsPolicyConfigReturns the KeyAccessJustificationsPolicyConfigof the resource closest to the given project in hierarchy. | 
| updateAutokeyConfig | PATCH /v1/{autokeyConfig.name=projects/*/autokeyConfig}Updates the AutokeyConfigfor a folder. | 
| updateKajPolicyConfig | PATCH /v1/{keyAccessJustificationsPolicyConfig.name=projects/*/kajPolicyConfig}Updates the KeyAccessJustificationsPolicyConfigfor a given organization, folder, or project. | 
REST Resource: v1.projects.locations
| Methods | |
|---|---|
| generateRandomBytes | POST /v1/{location=projects/*/locations/*}:generateRandomBytesGenerate random bytes using the Cloud KMS randomness source in the provided location. | 
| get | GET /v1/{name=projects/*/locations/*}Gets information about a location. | 
| getEkmConfig | GET /v1/{name=projects/*/locations/*/ekmConfig}Returns the EkmConfigsingleton resource for a given project and location. | 
| list | GET /v1/{name=projects/*}/locationsLists information about the supported locations for this service. | 
| updateEkmConfig | PATCH /v1/{ekmConfig.name=projects/*/locations/*/ekmConfig}Updates the EkmConfigsingleton resource for a given project and location. | 
REST Resource: v1.projects.locations.ekmConfig
| Methods | |
|---|---|
| getIamPolicy | GET /v1/{resource=projects/*/locations/*/ekmConfig}:getIamPolicyGets the access control policy for a resource. | 
| setIamPolicy | POST /v1/{resource=projects/*/locations/*/ekmConfig}:setIamPolicySets the access control policy on the specified resource. | 
| testIamPermissions | POST /v1/{resource=projects/*/locations/*/ekmConfig}:testIamPermissionsReturns permissions that a caller has on the specified resource. | 
REST Resource: v1.projects.locations.ekmConnections
| Methods | |
|---|---|
| create | POST /v1/{parent=projects/*/locations/*}/ekmConnectionsCreates a new EkmConnectionin a given Project and Location. | 
| get | GET /v1/{name=projects/*/locations/*/ekmConnections/*}Returns metadata for a given EkmConnection. | 
| getIamPolicy | GET /v1/{resource=projects/*/locations/*/ekmConnections/*}:getIamPolicyGets the access control policy for a resource. | 
| list | GET /v1/{parent=projects/*/locations/*}/ekmConnectionsLists EkmConnections. | 
| patch | PATCH /v1/{ekmConnection.name=projects/*/locations/*/ekmConnections/*}Updates an EkmConnection's metadata. | 
| setIamPolicy | POST /v1/{resource=projects/*/locations/*/ekmConnections/*}:setIamPolicySets the access control policy on the specified resource. | 
| testIamPermissions | POST /v1/{resource=projects/*/locations/*/ekmConnections/*}:testIamPermissionsReturns permissions that a caller has on the specified resource. | 
| verifyConnectivity | GET /v1/{name=projects/*/locations/*/ekmConnections/*}:verifyConnectivityVerifies that Cloud KMS can successfully connect to the external key manager specified by an EkmConnection. | 
REST Resource: v1.projects.locations.keyHandles
| Methods | |
|---|---|
| create | POST /v1/{parent=projects/*/locations/*}/keyHandlesCreates a new KeyHandle, triggering the provisioning of a newCryptoKeyfor CMEK use with the given resource type in the configured key project and the same location. | 
| get | GET /v1/{name=projects/*/locations/*/keyHandles/*}Returns the KeyHandle. | 
| list | GET /v1/{parent=projects/*/locations/*}/keyHandlesLists KeyHandles. | 
REST Resource: v1.projects.locations.keyRings
| Methods | |
|---|---|
| create | POST /v1/{parent=projects/*/locations/*}/keyRingsCreate a new KeyRingin a given Project and Location. | 
| get | GET /v1/{name=projects/*/locations/*/keyRings/*}Returns metadata for a given KeyRing. | 
| getIamPolicy | GET /v1/{resource=projects/*/locations/*/keyRings/*}:getIamPolicyGets the access control policy for a resource. | 
| list | GET /v1/{parent=projects/*/locations/*}/keyRingsLists KeyRings. | 
| setIamPolicy | POST /v1/{resource=projects/*/locations/*/keyRings/*}:setIamPolicySets the access control policy on the specified resource. | 
| testIamPermissions | POST /v1/{resource=projects/*/locations/*/keyRings/*}:testIamPermissionsReturns permissions that a caller has on the specified resource. | 
REST Resource: v1.projects.locations.keyRings.cryptoKeys
| Methods | |
|---|---|
| create | POST /v1/{parent=projects/*/locations/*/keyRings/*}/cryptoKeysCreate a new CryptoKeywithin aKeyRing. | 
| decrypt | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:decryptDecrypts data that was protected by Encrypt. | 
| encrypt | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/**}:encryptEncrypts data, so that it can only be recovered by a call to Decrypt. | 
| get | GET /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}Returns metadata for a given CryptoKey, as well as itsprimaryCryptoKeyVersion. | 
| getIamPolicy | GET /v1/{resource=projects/*/locations/*/keyRings/*/cryptoKeys/*}:getIamPolicyGets the access control policy for a resource. | 
| list | GET /v1/{parent=projects/*/locations/*/keyRings/*}/cryptoKeysLists CryptoKeys. | 
| patch | PATCH /v1/{cryptoKey.name=projects/*/locations/*/keyRings/*/cryptoKeys/*}Update a CryptoKey. | 
| setIamPolicy | POST /v1/{resource=projects/*/locations/*/keyRings/*/cryptoKeys/*}:setIamPolicySets the access control policy on the specified resource. | 
| testIamPermissions | POST /v1/{resource=projects/*/locations/*/keyRings/*/cryptoKeys/*}:testIamPermissionsReturns permissions that a caller has on the specified resource. | 
| updatePrimaryVersion | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*}:updatePrimaryVersionUpdate the version of a CryptoKeythat will be used inEncrypt. | 
REST Resource: v1.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions
| Methods | |
|---|---|
| asymmetricDecrypt | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricDecryptDecrypts data that was encrypted with a public key retrieved from GetPublicKeycorresponding to aCryptoKeyVersionwithCryptoKey.purposeASYMMETRIC_DECRYPT. | 
| asymmetricSign | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:asymmetricSignSigns data using a CryptoKeyVersionwithCryptoKey.purposeASYMMETRIC_SIGN, producing a signature that can be verified with the public key retrieved fromGetPublicKey. | 
| create | POST /v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersionsCreate a new CryptoKeyVersionin aCryptoKey. | 
| decapsulate | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:decapsulateDecapsulates data that was encapsulated with a public key retrieved from GetPublicKeycorresponding to aCryptoKeyVersionwithCryptoKey.purposeKEY_ENCAPSULATION. | 
| destroy | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:destroySchedule a CryptoKeyVersionfor destruction. | 
| get | GET /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}Returns metadata for a given CryptoKeyVersion. | 
| getPublicKey | GET /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}/publicKeyReturns the public key for the given CryptoKeyVersion. | 
| import | POST /v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersions:importImport wrapped key material into a CryptoKeyVersion. | 
| list | GET /v1/{parent=projects/*/locations/*/keyRings/*/cryptoKeys/*}/cryptoKeyVersionsLists CryptoKeyVersions. | 
| macSign | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macSignSigns data using a CryptoKeyVersionwithCryptoKey.purposeMAC, producing a tag that can be verified by another source with the same key. | 
| macVerify | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:macVerifyVerifies MAC tag using a CryptoKeyVersionwithCryptoKey.purposeMAC, and returns a response that indicates whether or not the verification was successful. | 
| patch | PATCH /v1/{cryptoKeyVersion.name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}Update a CryptoKeyVersion's metadata. | 
| rawDecrypt | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:rawDecryptDecrypts data that was originally encrypted using a raw cryptographic mechanism. | 
| rawEncrypt | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:rawEncryptEncrypts data using portable cryptographic primitives. | 
| restore | POST /v1/{name=projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*}:restoreRestore a CryptoKeyVersionin theDESTROY_SCHEDULEDstate. | 
REST Resource: v1.projects.locations.keyRings.importJobs
| Methods | |
|---|---|
| create | POST /v1/{parent=projects/*/locations/*/keyRings/*}/importJobsCreate a new ImportJobwithin aKeyRing. | 
| get | GET /v1/{name=projects/*/locations/*/keyRings/*/importJobs/*}Returns metadata for a given ImportJob. | 
| getIamPolicy | GET /v1/{resource=projects/*/locations/*/keyRings/*/importJobs/*}:getIamPolicyGets the access control policy for a resource. | 
| list | GET /v1/{parent=projects/*/locations/*/keyRings/*}/importJobsLists ImportJobs. | 
| setIamPolicy | POST /v1/{resource=projects/*/locations/*/keyRings/*/importJobs/*}:setIamPolicySets the access control policy on the specified resource. | 
| testIamPermissions | POST /v1/{resource=projects/*/locations/*/keyRings/*/importJobs/*}:testIamPermissionsReturns permissions that a caller has on the specified resource. | 
REST Resource: v1.projects.locations.operations
| Methods | |
|---|---|
| get | GET /v1/{name=projects/*/locations/*/operations/*}Gets the latest state of a long-running operation. |