获取密钥及其标签
包含此代码示例的文档页面
如需查看上下文中使用的代码示例,请参阅以下文档:
代码示例
C#
如需了解如何安装和使用 Cloud KMS 客户端库,请参阅 Cloud KMS 客户端库。
using Google.Cloud.Kms.V1;
using System;
public class GetKeyLabelsSample
{
public CryptoKey GetKeyLabels(string projectId = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring", string keyId = "my-key")
{
// Create the client.
KeyManagementServiceClient client = KeyManagementServiceClient.Create();
// Build the key name.
CryptoKeyName keyName = new CryptoKeyName(projectId, locationId, keyRingId, keyId);
// Call the API.
CryptoKey result = client.GetCryptoKey(keyName);
// Example of iterating over labels.
foreach (var item in result.Labels)
{
String key = item.Key;
String value = item.Value;
// ...
}
// Return the ciphertext.
return result;
}
}
Go
如需了解如何安装和使用 Cloud KMS 客户端库,请参阅 Cloud KMS 客户端库。
import (
"context"
"fmt"
"io"
kms "cloud.google.com/go/kms/apiv1"
kmspb "google.golang.org/genproto/googleapis/cloud/kms/v1"
)
// getKeyLabels fetches the labels on a KMS key.
func getKeyLabels(w io.Writer, name string) error {
// name := "projects/my-project/locations/us-east1/keyRings/my-key-ring/cryptoKeys/my-key"
// Create the client.
ctx := context.Background()
client, err := kms.NewKeyManagementClient(ctx)
if err != nil {
return fmt.Errorf("failed to create kms client: %v", err)
}
// Build the request.
req := &kmspb.GetCryptoKeyRequest{
Name: name,
}
// Call the API.
result, err := client.GetCryptoKey(ctx, req)
if err != nil {
return fmt.Errorf("failed to get key: %v", err)
}
// Extract and print the labels.
for k, v := range result.Labels {
fmt.Fprintf(w, "%s=%s\n", k, v)
}
return nil
}
Java
如需了解如何安装和使用 Cloud KMS 客户端库,请参阅 Cloud KMS 客户端库。
import com.google.cloud.kms.v1.CryptoKey;
import com.google.cloud.kms.v1.CryptoKeyName;
import com.google.cloud.kms.v1.KeyManagementServiceClient;
import java.io.IOException;
public class GetKeyLabels {
public void getKeyLabels() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String locationId = "us-east1";
String keyRingId = "my-key-ring";
String keyId = "my-key";
getKeyLabels(projectId, locationId, keyRingId, keyId);
}
// Get the labels associated with a key.
public void getKeyLabels(String projectId, String locationId, String keyRingId, String keyId)
throws IOException {
// Initialize client that will be used to send requests. This client only
// needs to be created once, and can be reused for multiple requests. After
// completing all of your requests, call the "close" method on the client to
// safely clean up any remaining background resources.
try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {
// Build the name from the project, location, key ring, and keyId.
CryptoKeyName keyName = CryptoKeyName.of(projectId, locationId, keyRingId, keyId);
// Get the key.
CryptoKey key = client.getCryptoKey(keyName);
// Print out each label.
key.getLabelsMap().forEach((k, v) -> System.out.printf("%s=%s%n", k, v));
}
}
}
Node.js
如需了解如何安装和使用 Cloud KMS 客户端库,请参阅 Cloud KMS 客户端库。
//
// TODO(developer): Uncomment these variables before running the sample.
//
// const projectId = 'my-project';
// const locationId = 'us-east1';
// const keyRingId = 'my-key-ring';
// const keyId = 'my-key';
// Imports the Cloud KMS library
const {KeyManagementServiceClient} = require('@google-cloud/kms');
// Instantiates a client
const client = new KeyManagementServiceClient();
// Build the key name
const keyName = client.cryptoKeyPath(projectId, locationId, keyRingId, keyId);
async function getKeyLabels() {
const [key] = await client.getCryptoKey({
name: keyName,
});
for (const k in key.labels) {
console.log(`${k}: ${key.labels[k]}`);
}
return key;
}
return getKeyLabels();
PHP
如需了解如何安装和使用 Cloud KMS 客户端库,请参阅 Cloud KMS 客户端库。
use Google\Cloud\Kms\V1\KeyManagementServiceClient;
function get_key_labels_sample(
string $projectId = 'my-project',
string $locationId = 'us-east1',
string $keyRingId = 'my-key-ring',
string $keyId = 'my-key'
) {
// Create the Cloud KMS client.
$client = new KeyManagementServiceClient();
// Build the key name.
$keyName = $client->cryptoKeyName($projectId, $locationId, $keyRingId, $keyId);
// Call the API.
$key = $client->getCryptoKey($keyName);
// Example of iterating over labels.
foreach ($key->getLabels() as $k => $v) {
printf('%s = %s' . PHP_EOL, $k, $v);
}
return $key;
}
Python
如需了解如何安装和使用 Cloud KMS 客户端库,请参阅 Cloud KMS 客户端库。
def get_key_labels(project_id, location_id, key_ring_id, key_id):
"""
Get a key and its labels.
Args:
project_id (string): Google Cloud project ID (e.g. 'my-project').
location_id (string): Cloud KMS location (e.g. 'us-east1').
key_ring_id (string): ID of the Cloud KMS key ring (e.g. 'my-key-ring').
key_id (string): ID of the key to use (e.g. 'my-key').
Returns:
CryptoKey: Cloud KMS key.
"""
# Import the client library.
from google.cloud import kms
# Create the client.
client = kms.KeyManagementServiceClient()
# Build the key name.
key_name = client.crypto_key_path(project_id, location_id, key_ring_id, key_id)
# Call the API.
key = client.get_crypto_key(request={'name': key_name})
# Example of iterating over labels.
for k, v in key.labels.items():
print('{} = {}'.format(k, v))
return key
Ruby
如需了解如何安装和使用 Cloud KMS 客户端库,请参阅 Cloud KMS 客户端库。
# TODO(developer): uncomment these values before running the sample.
# project_id = "my-project"
# location_id = "us-east1"
# key_ring_id = "my-key-ring"
# key_id = "my-key"
# Require the library.
require "google/cloud/kms"
# Create the client.
client = Google::Cloud::Kms.key_management_service
# Build the parent key name.
key_name = client.crypto_key_path project: project_id,
location: location_id,
key_ring: key_ring_id,
crypto_key: key_id
# Call the API.
key = client.get_crypto_key name: key_name
# Example of iterating over labels.
key.labels.each do |k, v|
puts "#{k} = #{v}"
end
后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅 Google Cloud 示例浏览器