Create a Google Cloud KMS configuration for an SVM
POST /security/gcp-kms
Introduced In: 9.9
Configures the Google Cloud KMS configuration for the specified SVM.
Required properties
- 
svm.uuidorsvm.name- Existing SVM in which to create a Google Cloud KMS. - 
project_id- Google Cloud project (application) ID of the deployed Google Cloud application with appropriate access to the Google Cloud KMS. - 
key_ring_name- Google Cloud KMS key ring name of the deployed Google Cloud application with appropriate access to the specified Google Cloud KMS. - 
key_ring_location- Google Cloud KMS key ring location. - 
key_name- Key Identifier of the Google Cloud KMS key encryption key. - 
application_credentials- Google Cloud application's service account credentials required to access the specified KMS. It is a JSON file containing an email address and the private key of the service account holder. 
Optional properties
- 
proxy_type- Type of proxy (http/https) if proxy configuration is used. - 
proxy_host- Proxy hostname if proxy configuration is used. - 
proxy_port- Proxy port number if proxy configuration is used. - 
proxy_username- Proxy username if proxy configuration is used. - 
proxy_password- Proxy password if proxy configuration is used. 
Related ONTAP commands
- 
security key-manager external gcp enable 
Parameters
| Name | Type | In | Required | Description | 
|---|---|---|---|---|
return_records  | 
boolean  | 
query  | 
False  | 
The default is false. If set to true, the records are returned. 
  | 
Request Body
| Name | Type | Description | 
|---|---|---|
application_credentials  | 
string  | 
Google Cloud application's service account credentials required to access the specified KMS. It is a JSON file containing an email address and the private key of the service account holder.  | 
ekmip_reachability  | 
array[ekmip_reachability]  | 
|
key_name  | 
string  | 
Key Identifier of Google Cloud KMS key encryption key.  | 
key_ring_location  | 
string  | 
Google Cloud KMS key ring location.  | 
key_ring_name  | 
string  | 
Google Cloud KMS key ring name of the deployed Google Cloud application.  | 
project_id  | 
string  | 
Google Cloud project (application) ID of the deployed Google Cloud application that has appropriate access to the Google Cloud KMS.  | 
proxy_host  | 
string  | 
Proxy host name.  | 
proxy_password  | 
string  | 
Proxy password. Password is not audited.  | 
proxy_port  | 
integer  | 
Proxy port number.  | 
proxy_type  | 
string  | 
Type of proxy.  | 
proxy_username  | 
string  | 
Proxy username.  | 
scope  | 
string  | 
Set to "svm" for interfaces owned by an SVM. Otherwise, set to "cluster".  | 
svm  | 
||
uuid  | 
string  | 
A unique identifier for the Google Cloud KMS.  | 
Example request
{
  "application_credentials": "{ type: service_account, project_id: project-id, private_key_id: key-id, private_key: -----BEGIN PRIVATE KEY-----\nprivate-key\n-----END PRIVATE KEY-----\n, client_email: service-account-email, client_id: client-id, auth_uri: https://accounts.google.com/o/oauth2/auth, token_uri: https://accounts.google.com/o/oauth2/token, auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs, client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/service-account-email }",
  "ekmip_reachability": [
    {
      "code": "346758",
      "message": "embedded KMIP server status unavailable on node.",
      "node": {
        "name": "node1",
        "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
      }
    }
  ],
  "key_name": "cryptokey1",
  "key_ring_location": "global",
  "key_ring_name": "gcpapp1-keyring",
  "project_id": "gcpapp1",
  "proxy_host": "proxy.eng.com",
  "proxy_password": "proxypassword",
  "proxy_port": 1234,
  "proxy_type": "http",
  "proxy_username": "proxyuser",
  "scope": "string",
  "svm": {
    "name": "svm1",
    "uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
  },
  "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
Response
Status: 201, Created
| Name | Type | Description | 
|---|---|---|
num_records  | 
integer  | 
Number of records  | 
records  | 
array[gcp_kms]  | 
Example response
{
  "num_records": 1,
  "records": [
    {
      "application_credentials": "{ type: service_account, project_id: project-id, private_key_id: key-id, private_key: -----BEGIN PRIVATE KEY-----\nprivate-key\n-----END PRIVATE KEY-----\n, client_email: service-account-email, client_id: client-id, auth_uri: https://accounts.google.com/o/oauth2/auth, token_uri: https://accounts.google.com/o/oauth2/token, auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs, client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/service-account-email }",
      "ekmip_reachability": [
        {
          "code": "346758",
          "message": "embedded KMIP server status unavailable on node.",
          "node": {
            "name": "node1",
            "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
          }
        }
      ],
      "key_name": "cryptokey1",
      "key_ring_location": "global",
      "key_ring_name": "gcpapp1-keyring",
      "project_id": "gcpapp1",
      "proxy_host": "proxy.eng.com",
      "proxy_password": "proxypassword",
      "proxy_port": 1234,
      "proxy_type": "http",
      "proxy_username": "proxyuser",
      "scope": "string",
      "svm": {
        "name": "svm1",
        "uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
      },
      "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
    }
  ]
}
Headers
| Name | Description | Type | 
|---|---|---|
Location  | 
Useful for tracking the resource location  | 
string  | 
Error
Status: Default
ONTAP Error Response Codes
| Error Code | Description | 
|---|---|
65537703  | 
The Google Cloud Key Management Service is not supported for the admin Vserver.  | 
65537704  | 
The Google Cloud Key Management Service is not supported in MetroCluster configurations.  | 
65537706  | 
Internal error. Failed to the encrypt the application credentials.  | 
65537713  | 
Internal Error. Failed to store the application credentials.  | 
65537719  | 
Failed to enable the Google Cloud Key Management Service for SVM   | 
65537720  | 
Failed to configure Google Cloud Key Management Service for SVM   | 
Definitions
See Definitions
href
| Name | Type | Description | 
|---|---|---|
href  | 
string  | 
_links
node
| Name | Type | Description | 
|---|---|---|
name  | 
string  | 
|
uuid  | 
string  | 
ekmip_reachability
Provides the connectivity status for the given SVM on the given node to all EKMIP servers configured on all nodes of the cluster.
This is an advanced property; there is an added computational cost to retrieving its value. The property is not populated for either a collection GET or an instance GET unless it is explicitly requested using the fields query parameter or GET for all advanced properties is enabled.
| Name | Type | Description | 
|---|---|---|
code  | 
string  | 
Code corresponding to the error message. Returns a 0 if a given SVM is able to communicate to the EKMIP servers of all of the nodes in the cluster.  | 
message  | 
string  | 
Error message set when cluster-wide EKMIP server availability from the given SVM and node is false.  | 
node  | 
||
reachable  | 
boolean  | 
Set to true if the given SVM on the given node is able to communicate to all EKMIP servers configured on all nodes in the cluster.  | 
google_reachability
Indicates whether or not the Google Cloud KMS is reachable from all nodes in the cluster.
This is an advanced property; there is an added computational cost to retrieving its value. The property is not populated for either a collection GET or an instance GET unless it is explicitly requested using the fields query parameter or GET for all advanced properties is enabled.
| Name | Type | Description | 
|---|---|---|
code  | 
string  | 
Code corresponding to the error message. Returns a 0 if Google Cloud KMS is reachable from all nodes in the cluster.  | 
message  | 
string  | 
Set to the error message when 'reachable' is false.  | 
reachable  | 
boolean  | 
Set to true if the Google Cloud KMS is reachable from all nodes of the cluster.  | 
state
Google Cloud Key Management Services is a cloud key management service (KMS) that provides a secure store for encryption keys. This object indicates whether or not the Google Cloud KMS key protection is available on all nodes in the cluster.
This is an advanced property; there is an added computational cost to retrieving its value. The property is not populated for either a collection GET or an instance GET unless it is explicitly requested using the fields query parameter or GET for all advanced properties is enabled.
| Name | Type | Description | 
|---|---|---|
cluster_state  | 
boolean  | 
Set to true when Google Cloud KMS key protection is available on all nodes of the cluster.  | 
code  | 
string  | 
Error code corresponding to the status message. Returns 0 if Google Cloud KMS key protection is available in all nodes of the cluster.  | 
message  | 
string  | 
Error message set when top-level internal key protection key (KEK) availability on cluster is false.  | 
svm
| Name | Type | Description | 
|---|---|---|
name  | 
string  | 
The name of the SVM.  | 
uuid  | 
string  | 
The unique identifier of the SVM.  | 
gcp_kms
| Name | Type | Description | 
|---|---|---|
application_credentials  | 
string  | 
Google Cloud application's service account credentials required to access the specified KMS. It is a JSON file containing an email address and the private key of the service account holder.  | 
ekmip_reachability  | 
array[ekmip_reachability]  | 
|
key_name  | 
string  | 
Key Identifier of Google Cloud KMS key encryption key.  | 
key_ring_location  | 
string  | 
Google Cloud KMS key ring location.  | 
key_ring_name  | 
string  | 
Google Cloud KMS key ring name of the deployed Google Cloud application.  | 
project_id  | 
string  | 
Google Cloud project (application) ID of the deployed Google Cloud application that has appropriate access to the Google Cloud KMS.  | 
proxy_host  | 
string  | 
Proxy host name.  | 
proxy_password  | 
string  | 
Proxy password. Password is not audited.  | 
proxy_port  | 
integer  | 
Proxy port number.  | 
proxy_type  | 
string  | 
Type of proxy.  | 
proxy_username  | 
string  | 
Proxy username.  | 
scope  | 
string  | 
Set to "svm" for interfaces owned by an SVM. Otherwise, set to "cluster".  | 
svm  | 
||
uuid  | 
string  | 
A unique identifier for the Google Cloud KMS.  | 
error_arguments
| Name | Type | Description | 
|---|---|---|
code  | 
string  | 
Argument code  | 
message  | 
string  | 
Message argument  | 
error
| Name | Type | Description | 
|---|---|---|
arguments  | 
array[error_arguments]  | 
Message arguments  | 
code  | 
string  | 
Error code  | 
message  | 
string  | 
Error message  | 
target  | 
string  | 
The target parameter that caused the error.  |