Я очень новичок в WAS, я хочу реализовать шифрование на стороне клиента для DynamoDB в php. Я не нашел ни одного документа, который мог бы показать мне, как это сделать. Я пробовал этот урок https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/s3-encryption-client.html,, но это для S3, а не для Dynamodb.
Тогда я попробовал этот урок https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/kms-example-encrypt.html.
В нем показано, как использовать KmsClient для шифрования данных на стороне клиента.
Я изменяю версию и регион для KmsClient на соответствующие значения, версию, которую я получаю со страницы Ключи шифрования, в рамках политики ключей
"Version": "2012-10-17",
Регион, который я получаю
Region ap-southeast-2
У меня есть файл учетных данных, как показано ниже в .aws / floder
[default]
aws_access_key_id = ***************
aws_secret_access_key = **************
Я также изменил идентификатор ключа на тот, который только что создал.
Но я продолжаю получать эту ошибку
#0 /Users/ditto/Sites/site/php/vendor/aws/aws-sdk-
php/src/ClientResolver.php(427):
Aws\Api\ApiProvider::resolve(Object(Aws\Api\ApiProvider), 'api',
'kms', '2012-10-17')
#1 /Users/ditto/Sites/site/php/vendor/aws/aws-sdk-
php/src/ClientResolver.php(288):
Aws\ClientResolver::_apply_api_provider(Object(Aws\Api\ApiProvider),
Array, Object(Aws\HandlerList))
#2 /Users/ditto/Sites/site/php/vendor/aws/aws-sdk-
php/src/AwsClient.php(158): Aws\ClientResolver->resolve(Array,
Object(Aws\HandlerList))
#3 /Users/ditto/Sites/site/php/signUpCopy.php(22):
Aws\AwsClient->__construct(Array)
#4 {main}
thrown in /Users/ditto/Sites/site/php/vendor/aws/aws-sdk-php/src/Api/ApiProvider.php on line 85
Это мой код:
include ('config.php');
require ('vendor/autoload.php');
use Aws\Kms\KmsClient;
use Aws\Exception\AwsException;
$message = pack('c*',1,2,3,4,5,6,7,8,9,0);
$KmsClient = new Aws\Kms\KmsClient([
'profile' => 'default',
'version' => '2012-10-17',
'region' => 'ap-southeast-2'
]);
$keyId = '***************************';
$message = pack('c*', 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
try {
$result = $KmsClient->encrypt([
'KeyId' => $keyId,
'Plaintext' => $message,
]);
var_dump($result);
} catch (AwsException $e) {
// output error message if fails
echo $e->getMessage();
echo "\n";
}
Я не знаю, где я сделал это неправильно.