GCP DLP(数据丢失预防)获取"解密失败:密文无效."-400错误



我先创建了一个钥匙环,然后创建了一把钥匙。然后使用导入作业创建一个包装密钥。然后使用下面的代码解密一个普通文本。但我得到以下错误:

.InvalidArgument:400在展开KmsWrappedCryptoKey"项目XXXXXXXXXXXXX/location时从Cloud KMS收到以下错误消息s/global/keyRings/demo-keyring/cryptoKeys/demo_v1":解密失败:密文无效。

下面是代码:

# Import the client library
import google.cloud.dlp
# Instantiate a client
dlp = google.cloud.dlp_v2.DlpServiceClient()
project = 'XXXXXX'
stringVal = 'My name is Sonal Singh and my email id is : sonalsingh@gmail.com'
alphabet='ALPHA_NUMERIC'
surrogate_type='EMAIL_ADDRESS'
wrapped_key=('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+'
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+gr'
'l+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+'
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+/+'
'//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=')
#key_name = ('projects/XXXXXXXXXXXXX/locations/global/keyRings/demo-keyring/cryptoKeys/demo_key')

parent = dlp.project_path(project)
# The wrapped key is base64-encoded, but the library expects a binary
# string, so decode it here.
import base64
wrapped_key = base64.b64decode(wrapped_key)
# Construct FPE configuration dictionary
crypto_replace_ffx_fpe_config = {
"crypto_key": {
"kms_wrapped": {
"wrapped_key": wrapped_key,
"crypto_key_name": key_name,
}
},
"common_alphabet": alphabet,
}
# Add surrogate type
if surrogate_type:
crypto_replace_ffx_fpe_config["surrogate_info_type"] = {
"name": surrogate_type
}
# Construct inspect configuration dictionary
inspect_config = {
"info_types": [{"name": info_type} for info_type in ["FIRST_NAME", "LAST_NAME", "EMAIL_ADDRESS"]]
}
# Construct deidentify configuration dictionary
deidentify_config = {
"info_type_transformations": {
"transformations": [
{
"primitive_transformation": {
"crypto_replace_ffx_fpe_config": crypto_replace_ffx_fpe_config
}
}
]
}
}
# Convert string to item
item = {"value": stringVal}
# Call the API
response = dlp.deidentify_content(
parent,
inspect_config=inspect_config,
deidentify_config=deidentify_config,
item=item
)
# Print results
print(response.item.value)

我可以看到另一个堆栈溢出的帖子有同样的问题:GCP DLP(数据丢失防止(得到"保护";解密失败:密文无效"但不确定这一步意味着什么:在您对Google Cloud DLP API的请求中使用此生成的值。

如何在上面的代码中使用这个值?

是的,我认为您发现的另一个StackOverflow问题可以在这里帮助我们。

我对python不太熟悉,但我看到了一些我想指出的事情。我认为你正在做步骤1&3来自另一篇StackOverflow文章1,但您错过了使用Cloud KMS加密的步骤2(根据您的情况解密(。

你有机会复习一下吗:

https://cloud.google.com/kms/docs/reference/libraries#client-库使用pythonhttps://cloud.google.com/kms/docs/encrypt-decrypt#kms-如何加密python

此外,请知道你已经在代码上发布了你的电子邮件,你可能想编辑它。


相关内容

  • 没有找到相关文章