该错误通常是由于使用了不兼容的密钥版本或提供了错误的密钥参数而引起的。要解决此问题,您可以尝试使用正确的密钥版本或检查密钥参数是否正确。
以下是一个手动提供密钥集的示例代码:
# 导入包
from google.auth import compute_engine
from google.cloud import bigquery
from google.cloud.bigquery_encryption_v1 import kms
# 创建加密客户端
credentials = compute_engine.Credentials()
kms_client = kms.KeyManagementServiceClient(credentials=credentials)
encrypt_client = bigquery.Client(project='your-project-id', credentials=credentials,
default_encryption_configuration=bigquery.EncryptionConfiguration(
kms_key_name='projects/your-project-id/locations/global/keyRings/your-key-ring/cryptoKeys/your-key',
# 设置加密算法
kms_key_version='1',
# 设置加密方式
encryption_algorithm='AES256_GCM'))
# 加密数据
plaintext = 'Hello, World!'
ciphertext, _ = encrypt_client.encrypt(plaintext.encode('utf-8'))
# 解密数据
decrypted_bytes = kms_client.decrypt(
name='projects/your-project-id/locations/global/keyRings/your-key-ring/cryptoKeys/your-key/cryptoKeyVersions/1',
ciphertext=bytes(ciphertext)
).plaintext
print(decrypted_bytes.decode('utf-8'))
请注意,需要替换以下值:
your-project-id
:您的Google Cloud项目IDyour-key-ring
:您的密钥环名称your-key
:您的密钥名称此外,还需要确保您对BigQuery表或视图具有适当的访问权限。