问题标签 [google-cloud-kms]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
636 浏览

javascript - Can't generate valid jwt signature with google kms

I am using Google KMS (https://cloud.google.com/kms/) with an asymmetric signing key to sign JSON Web tokens (jwt) in a node.js application.

I am able to create header and payload and with the Google KMS nodejs library (https://github.com/googleapis/nodejs-kms) I can sign the token.

But it seems that the generated token is not valid.

In fact I am doing the following steps to generate a token:

  1. define jwt-header as object
  2. jwt-header object to string
  3. base64url encode jwt-header-string
  4. define jwt-payload as object
  5. jwt-payload object to string
  6. base64url encode jwt-payload-string
  7. concatenate (header.payload)
  8. decode string to base64 byte array
  9. create sha256 hash on byte array
  10. select asymmetric key from google kms
  11. use asymmetric key to get the signature byte array
  12. use base64url encoding on the signature
  13. build token (header.payload.signature)

This token alway brings the error (invalid signature). See https://jwt.io/

The public key to verify the token:

The code to build the jwt:

The generated token looks like the following (= output of the last console.log):

0 投票
2 回答
261 浏览

mongodb - 使用 Google Cloud Key Management Service 加密 Mongodb

是否可以Google KMSMongodbUbuntu 18.04 (GCP) 上的服务器一起使用来加密静态数据?有什么要求?它是如何完成的?我想使用 mongodb 加密功能来提高安全性。

文档中提到了KMIP协议,Google 是否提供此类服务?

ps:我已经Mongodb enterprise在我的服务器上安装了版本以及后端等其他服务。

0 投票
2 回答
519 浏览

ssh - Google Cloud KMS - 加密 SSH 密钥 (id_rsa)

我目前正在关注https://cloud.google.com/cloud-build/docs/access-private-github-repos但我被卡住了,我不确定是否理解。

事实上,我做了以下事情:

有人可以告诉我在哪里gcloud kms寻找吗?我实际上需要它用于谷歌云构建触发目的

谢谢 !

编辑 1 - 为约翰的评论添加了详细信息

0 投票
1 回答
319 浏览

airflow - KMS 的 Cloud Composer 气流网络服务器问题

我正在尝试在我的一个运行 PythonOperator 的 DAG 中使用 KMS 库,但在气流网络服务器中遇到错误:

气流网络服务器无法将我的特定 DAG 从我的宿主项目导入到租户项目(这是运行网络服务器的位置)。DAG 运行没有问题,因为我的宿主项目设置正确,但没有机会在 UI 中监控它是一个巨大的缺点。

系统规格:

能够利用 KMS 和气流 ui 会很好,否则我可能不得不将我的秘密添加到云作曲家环境变量中(这不是首选。)

对此有任何已知的解决方案吗?

0 投票
1 回答
49 浏览

google-cloud-functions - 谷歌云函数响应消息的数字签名

我尝试使用 Google Cloud KMS 签署响应消息。

但立即得到一个错误。

index.js:

包.json:

日志:

任何想法?

0 投票
1 回答
555 浏览

google-cloud-platform - Cloud Function 使用 KMS 密钥解密的权限被拒绝

我有一个 Python 云函数,它使用 KMS 密钥解密环境中其他服务的一些身份验证令牌,如https://dev.to/googlecloud/using-secrets-in-google-cloud-functions-5aem

每当我运行我的函数时,我都会收到 403 Permission Denied。当我在我的计算机上本地调用该函数时,它工作正常。我尝试将“Cloud KMS CryptoKey Decrypter”角色添加到默认的 Compute Engine 服务帐户,但这没有用。

还有其他想法吗?

编辑:这里有一些代码显示我在做什么。环境变量存储在environment.yaml我指向的文件中gcloud functions deploy

这是来自 Cloud Functions 控制台的错误:

0 投票
1 回答
873 浏览

node.js - 节点 Google Cloud KMS 加密似乎有效,但解密失败

这是我的第一个 Stack Overflow 问题!

无论如何,我正在尝试使用 Cloud KMS 为我在 App Engine 中运行的节点 API 设置数据库连接机密的解密。为了让它工作,我一直在本地测试它。我使用 gcloud CLI 对机密进行加密,然后将它们上传到 Cloud Storage 存储桶(如果重要,则在与 API 不同的项目下)。在 API 中提取加密的秘密很顺利,但是当我尝试解密这些秘密时,我得到了:

Error: 3 INVALID_ARGUMENT: Decryption failed: verify that 'name' refers to the correct CryptoKey.

我检查并重新检查了我的项目 ID、密钥环 ID、密钥 ID 是否正确。

在上传到存储桶之前,我尝试在 base64 中对加密的秘密进行编码。我尝试在 API 中对编码和加密的秘密进行硬编码。这些都不起作用。

因此,为了进行完整性检查,我重写了代码以简单地加密一个字符串,然后在 API 中使用相同的 cryptoKeyPath 对其进行解密。加密似乎有效,但在解密过程中我仍然收到上述错误。

(一些云存储代码仍然存在,但在解密之前不会被使用)。

我通过 GOOGLE_APPLICATION_CREDENTIALS env 变量设置了身份验证,该变量指向一个服务帐户的 JSON 密钥文件,该服务帐户同时具有 Cloud KMS CryptoKey Encrypter/Decrypter 和 Cloud KMS 管理员角色(在绝望中添加了管理员角色)。

有人可以帮我吗?

提前致谢。

0 投票
2 回答
9948 浏览

google-cloud-platform - GCP 中的 KMS 和秘密管理器有什么区别?

我想知道您是否请帮助我解决以下问题。KMS 和 GCP 中的秘密管理器有什么区别?先感谢您。 https://cloud.google.com/secret-manager/docs/ HB

0 投票
1 回答
176 浏览

python - 无法更新 us-central1 中的加密密钥

出于某种原因,我似乎无法更新该us-central1地区的密钥。我的 IAM 具有更新和列表角色,我使用以下代码:

它给了我以下错误:

google.api_core.exceptions.NotFound:404 请求涉及位置“us-central1”,但已发送到位置“全球”。Cloud KMS 在“us-central1”中不可用或请求路由错误。

奇怪的是,列表和 get 工作正常。我还看到了一个解决方案,他们更改了客户端的传输参数,但我似乎找不到正确的地址。

提前致谢 !

0 投票
0 回答
389 浏览

android - 使用 Tink 和 Google Cloud KMS 在 Android 上实现信封加密

我正在实施的应用程序将包含高度敏感的用户数据,因此我们希望在本地和在线(在 Gcloud Firestore 上)保存之前对数据进行加密。我想使用Envelope Encryption来做到这一点。

目前我在 Gcloud Run 上部署了一个 Python 后端,它具有连接到 GCloud KMS 的凭据。它提供了一个 REST API,我想用它来使用 GCloud KMS 密钥作为密钥加密密钥 (KEK) 来加密数据加密密钥 (DEK)。目前它只能加密简单的字符串,我们从单独的后端而不是从应用程序本身执行此操作,因为据我所知,没有安全的方法将 GCloud 凭据存储在应用程序内。GCloud KMS 客户端库不支持 Android另一个SO答案涉及到这一点。

在 Android 端,我使用Tink创建一个数据加密密钥,我可以用它加密我的数据。最后一步,我无法完全弄清楚的是如何将 AEAD 密钥发送到我的后端。这是我已经考虑过的:

  • Tink 在技术上已经支持直接使用 GCloud,但这需要我的应用程序具有 GCloud Credentials,如上所述,这并不安全。

  • 我可以使用JSONKeyWriter使用 ByteArrayOutputStream 将密钥的 JSON 版本写入字符串,并使用我的后端发送此字符串以进行加密,但由于某种原因,我还不能解释这感觉不对我。

所以我有点卡住了。第二个选项仍然是正确的吗?也许还有另一个我还没有考虑过的第三种选择。我不认为我是第一个实现这一点的人,但我似乎找不到任何关于以这种方式工作的信息。