- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的本地 circleci 上配置一个作业(使用 docker 执行器,图像:google/cloud-sdk:latest
),该作业需要解密 sops gcp kms 加密文件。我已经为 gcp kms 解密服务设置了一个谷歌服务帐户(我可以运行脚本,通过 circleci 作业运行,通过服务帐户解密 sops 文件在本地成功运行,所以我知道服务帐户设置是有效的) .以下是我的工作方式。
1- 我对 google 服务帐户 json 文件进行 base64 编码:base64 path/to/service_aacount_file.json
2- 我运行 circleci 作业,在 circleci 上设置 GCLOUD_SERVICE_KEY 环境变量,使用上一步的 base64 编码内容:circleci local execute --env GCLOUD_SERVICE_KEY='<Base64EncodedServiceAccountJsonFileContent>' --job '<MyJob>'
3- 这是我的 circleci 配置:
- run:
name: <MyJob>
command: |
apt-get install -y docker
apt-get install -y sudo
cd $(pwd)/path/to/jobcode
echo $GCLOUD_SERVICE_KEY | base64 -d > ${HOME}/<MyGoogleServiceAccountJsonFile.json>
export GOOGLE_APPLICATION_CREDENTIALS="${HOME}/<MyGoogleServiceAccountJsonFile.json>"
gcloud auth activate-service-account --key-file ${HOME}/<MyGoogleServiceAccountJsonFile.json>
echo $GOOGLE_APPLICATION_CREDENTIALS
ls -halt $GOOGLE_APPLICATION_CREDENTIALS
cat $GOOGLE_APPLICATION_CREDENTIALS
sudo ./<RunJob.sh>
4- 执行作业时出现以下错误:
Failed to get the data key required to decrypt the SOPS file.
Group 0: FAILED
projects/<MyProject>/locations/<MyLocation>/keyRings/<MySopsKeyring>/cryptoKeys/<MyKey>: FAILED
- | Cannot create GCP KMS service: google: could not find
| default credentials. See
| https://developers.google.com/accounts/docs/application-default-credentials
| for more information.
Recovery failed because no master key was able to decrypt the file. In
order for SOPS to recover the file, at least one key has to be successful,
but none were.
5- 此外,从控制台输出:
a- 我可以看到服务帐户已成功激活:Activated service account credentials for: [<MyServiceAccount>@<MyProject>.iam.gserviceaccount.com]
b- GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为服务帐户 json 的路径:/path/to/service_account.json
c- 上面的文件已经正确base64解码并包含有效的json:
{
"client_x509_cert_url": "<MyUrl>",
"auth_uri": "<MyAuthUri>",
"private_key": "<MyPrivateKey>",
"client_email": "<ClientEmail>",
"private_key_id": "<PrivateKeyId>",
"client_id": "<ClientId>",
"token_uri": "<TokenUri>",
"project_id": "<ProjectId>",
"type": "<ServiceAccount>",
"auth_provider_x509_cert_url": "<AuthProviderCertUrl>"
}
6- 我尝试过的其他一些事情:
a- 尝试在环境变量中设置 google 项目名称,但仍然出现同样的错误。
b- 尝试将 GOOGLE_APPLICATION_CREDENTIALS 设置为文件内容,而不是文件路径,但结果还是一样。
c- 尝试通过提供不带引号或单引号的文件路径来设置 GOOGLE_APPLICATION_CREDENTIALS,但仍然没有区别。
d- 尝试通过执行 echo 'export GOOGLE_APPLICATION_CREDENTIALS=path/to/service_account.json' >> $BASH_ENV
来设置 $BASH_ENV , 但同样的错误
请帮忙。
最佳答案
五个可行的选项:
gcloud auth application-default login
echo 'export GOOGLE_APPLICATION_CREDENTIALS=/tmp/service-account.json' >> $BASH_ENV
{ echo 1;回声 1;回声; } | gcloud 初始化
gcloud components update
这有时会在 sdk 过时时起作用。配置集项目 [PROJECT_NAME]
您还可以使用以下方式检查事件帐户:gcloud auth list
关于google-cloud-platform - 尽管 GOOGLE_APPLICATION_CREDENTIALS 已成功设置为服务帐户 json,但 Sops 无法 gcp kms 解密 Circleci 上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60137075/
我正在开发一个需要使用 Google OAUTH 2 进行服务器到服务器应用程序的 CMS 模块。根据official manual需要设置一个带有 .json 键路径的环境变量,如下所示: pute
目前必须将 Google Cloud Platform 服务集成到我的应用程序中,但收到以下异常: **W/System.err: java.io.IOException: The Applicati
我的目标是使用 Google Cloud API 之一,为此我需要将 GOOGLE_APPLICATION_CREDENTIALS 设置为 .json 文件。 我收到此错误消息以及有关如何解决该问题的
我知道以前有人问过这种类型的问题,我已经解决了这个问题,但仍然面临这个问题。我用的是 this example .但是当我运行我的代码时,我遇到了以下异常 Failed to detect wheth
我们在一个谷歌服务帐户中有多个项目,每个项目都有单独的 GOOGLE_APPLICATION_CREDENTIALS .json 文件。根据基于语言环境的要求和 projectID我们必须使用相关的凭
在本地运行我的 java 项目会出现 GOOGLE_APPLICATION_CREDENTIALS 异常。 异常(exception)情况是: ConfigServletWebServerApplic
我有一个使用 Google Vision API 和 Google Video intelligence API 的 Go 应用程序。为了输入我的凭据,我设置了名为 GOOGLE_APPLICATIO
我尝试使用 Google Speach Api 我在身份验证方面遇到了大问题。 我关注了这个tutorial ,然后导出 GOOGLE_APPLICATION_CREDENTIALS,并使用 echo
我需要为我的应用程序使用“Google speech API”。为此,我安装了“谷歌云存储SDK”。我点击了这个链接“https://cloud.google.com/sdk/docs/quickst
当我在本地机器(Windows)上运行文档示例时,我设置了指向 json 文件的环境变量并且它可以工作。如果路径不正确,它会警告我也找不到该文件。 // Imports the Google Clou
我正在尝试使用 google 语音 API 将音频文件转换为文本,但在文档方面遇到了一些问题。我已启用语音 API 并创建了一个服务帐户文件。我还激活了服务帐户凭据。然后我编写了以下命令来使用我的服务
我想使用我的 key.json 在我的 docker 容器中设置 GOOGLE_APPLICATION_CREDENTIALS文件,但我不想将此文件复制到我的容器中。 最佳答案 docker run
我正在尝试使用 Spring 访问 Google 存储桶中的文件,最终目标是使用 MultiResourceItemReader 从存储桶中读取多个 XML 文件。当 XML 文件在我的本地机器(不是
我正在使用 gcloud 为 Django 编写自定义文件存储。 并且在寻找服务帐户 JSON 的 gloud 路径方面存在问题。我尝试使用 GOOGLE_APPLICATION_CREDENTIAL
google docs假设使用服务帐户的 JSON key 的路径导出环境变量 GOOGLE_APPLICATION_CREDENTIALS,gcloud 将使用它。我无法让它工作。 我的命令是: G
在我的 serverless.yml 文件中,我试图添加一个名为 GOOGLE_APPLICATION_CREDENTIALS 的环境变量,它指向我的服务帐户凭据 JSON 文件,但是当添加到无服务器
我正在我的 Mac 上使用 VSCode 在我的 Django 项目上测试 Google Cloud Pub/Sub,我在调试测试期间设置 GCP 环境变量时遇到了一些问题,特别是 GOOGLE_AP
我正在尝试在 java 中使用谷歌视觉库。这些步骤指定我需要设置我的身份验证凭据才能开始使用 this图书馆 。我能够从 API 控制台凭据页面生成我的 json 属性文件,并将其放置在资源文件夹中的
我正在使用 Laravel 5.2 并且我使用 php artisan config:cache正如官方文档中建议的那样,以提高速度。 如您所知,此命令使 .env 文件变量直接不可访问(您可以使用
在 kubernetes 的帮助下,我在 GKE 上运行日常作业,每天基于 kubernetes 中配置的 cron 启动一个新容器并尝试将一些数据插入 BigQuery。 我们的设置是我们在一个项目
我是一名优秀的程序员,十分优秀!