aws-sdk шифрование kmsClient ОШИБКА в PHP - PullRequest
0 голосов
/ 06 сентября 2018

Я очень новичок в 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. enter image description here

В нем показано, как использовать 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";
}

Я не знаю, где я сделал это неправильно.

...