问题标签 [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.
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:
- define jwt-header as object
- jwt-header object to string
- base64url encode jwt-header-string
- define jwt-payload as object
- jwt-payload object to string
- base64url encode jwt-payload-string
- concatenate (header.payload)
- decode string to base64 byte array
- create sha256 hash on byte array
- select asymmetric key from google kms
- use asymmetric key to get the signature byte array
- use base64url encoding on the signature
- 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
):
mongodb - 使用 Google Cloud Key Management Service 加密 Mongodb
是否可以Google KMS
与Mongodb
Ubuntu 18.04 (GCP) 上的服务器一起使用来加密静态数据?有什么要求?它是如何完成的?我想使用 mongodb 加密功能来提高安全性。
文档中提到了KMIP
协议,Google 是否提供此类服务?
ps:我已经Mongodb enterprise
在我的服务器上安装了版本以及后端等其他服务。
ssh - Google Cloud KMS - 加密 SSH 密钥 (id_rsa)
我目前正在关注https://cloud.google.com/cloud-build/docs/access-private-github-repos但我被卡住了,我不确定是否理解。
事实上,我做了以下事情:
有人可以告诉我在哪里gcloud kms
寻找吗?我实际上需要它用于谷歌云构建触发目的
谢谢 !
编辑 1 - 为约翰的评论添加了详细信息
airflow - KMS 的 Cloud Composer 气流网络服务器问题
我正在尝试在我的一个运行 PythonOperator 的 DAG 中使用 KMS 库,但在气流网络服务器中遇到错误:
气流网络服务器无法将我的特定 DAG 从我的宿主项目导入到租户项目(这是运行网络服务器的位置)。DAG 运行没有问题,因为我的宿主项目设置正确,但没有机会在 UI 中监控它是一个巨大的缺点。
系统规格:
能够利用 KMS 和气流 ui 会很好,否则我可能不得不将我的秘密添加到云作曲家环境变量中(这不是首选。)
对此有任何已知的解决方案吗?
google-cloud-functions - 谷歌云函数响应消息的数字签名
我尝试使用 Google Cloud KMS 签署响应消息。
但立即得到一个错误。
index.js:
包.json:
日志:
任何想法?
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 控制台的错误:
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 管理员角色(在绝望中添加了管理员角色)。
有人可以帮我吗?
提前致谢。
google-cloud-platform - GCP 中的 KMS 和秘密管理器有什么区别?
我想知道您是否请帮助我解决以下问题。KMS 和 GCP 中的秘密管理器有什么区别?先感谢您。 https://cloud.google.com/secret-manager/docs/ HB
python - 无法更新 us-central1 中的加密密钥
出于某种原因,我似乎无法更新该us-central1
地区的密钥。我的 IAM 具有更新和列表角色,我使用以下代码:
它给了我以下错误:
google.api_core.exceptions.NotFound:404 请求涉及位置“us-central1”,但已发送到位置“全球”。Cloud KMS 在“us-central1”中不可用或请求路由错误。
奇怪的是,列表和 get 工作正常。我还看到了一个解决方案,他们更改了客户端的传输参数,但我似乎找不到正确的地址。
提前致谢 !
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 版本写入字符串,并使用我的后端发送此字符串以进行加密,但由于某种原因,我还不能解释这感觉不对我。
所以我有点卡住了。第二个选项仍然是正确的吗?也许还有另一个我还没有考虑过的第三种选择。我不认为我是第一个实现这一点的人,但我似乎找不到任何关于以这种方式工作的信息。