GCE Secret Manager 通过 php 应用程序显示测试密钥

问题描述

我是 Secret manager 的新手,我正在尝试使用 PHP 应用程序显示测试密钥。 部署应用程序时,我得到的只是错误 500。 我根据 gcp 文档(Secret Manager Secret Accessor + Storage Object Admin)为我的 [email protected] 服务帐户提供了所需的角色 我还从云外壳安装了 composer 所以我真的无法发现我做错了什么。

这是我的 composer.json

{
    "require-dev": {
        "paragonie/random_compat": "^9.0.0"
    },"require": {
        "google/cloud-secret-manager": "^1.2"
    }
}

这是我的代码的样子:

<?PHP 
    use Google\Cloud\SecretManager\V1\SecretManagerServiceClient;
     
    $projectId = 'myproject';
    $secretId = 'mysecret';
    $versionId = '1';
    $client = new SecretManagerServiceClient();
    $name = $client->secretVersionName($projectId,$secretId,$versionId);
    $response = $client->accessSecretVersion($name);
    $payload = $response->getPayload()->getData();
    printf('Plaintext: %s',$payload);
?>

谢谢你的帮助...我不知道该尝试什么了:-(

解决方法

好的,所以我设法完成了这项工作。作为一个典型的菜鸟,我说了很多废话^^ 长话短说: 首先,我有(有?)一个坏习惯,就是从 google shell(不是 sdk)构建我的应用程序。我猜这没什么错(除了它实际上不太方便)但在这个用例中,您需要将包含访问密钥的 json 文件链接到您的 GOOGLE_APPLICATION_CREDENTIALS 环境变量,以便它有权查询秘密管理器。我不知道如何在没有 SDK 的情况下做到这一点。因此,一旦使用 sdk 部署应用程序并正确分配 json 文件,那就更好了。然后我有一个 autoload.php 错误我设法使用这篇法语文章修复:https://www.journaldunet.fr/web-tech/developpement/1441107-comment-corriger-l-erreur-require-vendor-autoload-php-failed-to-open-stream/ 谢谢你们试图帮助我。我在这个问题上学到了一两件有趣的事情......每天都是上学日^^