GCP DLP (предотвращение потери данных) получает сообщение «Ошибка дешифрования: неверный зашифрованный текст». - ошибка 400 - PullRequest
0 голосов
/ 17 марта 2020

Я создал брелок для ключей, а затем ключ. Затем использовал задание импорта, чтобы создать завернутый ключ. Затем для расшифровки обычного текста использовался приведенный ниже код. Но я получаю сообщение об ошибке ниже:

.InvalidArgument: 400 Получено следующее сообщение об ошибке от Cloud KMS при развертывании KmsWrappedCryptoKey "projects / XXXXXXXXXXXX / location 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.

Как использовать это значение в приведенном выше коде?

1 Ответ

0 голосов
/ 19 марта 2020

Да, я думаю, что другой вопрос StackOverflow, который вы нашли , может помочь нам здесь.

Я не очень хорошо разбираюсь в python, но я видел кое-что, что мне хотелось бы указать на то. Я думаю, что вы выполняете Шаги 1 и 3 из другого поста StackOverflow 1 правильно, но вам не хватает Шага 2, в котором вы шифруете с помощью Cloud KMS (расшифруйте на вашем случае).

У вас была возможность go свыше:

https://cloud.google.com/kms/docs/reference/libraries#client -libraries-use- python https://cloud.google.com/kms/docs/encrypt-decrypt#kms -howto-encrypt - python

Также, пожалуйста, знайте, что вы разместили свое электронное письмо в коде, вы можете отредактировать его.


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...