首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌云安全产品signBlob中的“signBlob”是什么?

谷歌云安全产品signBlob中的“signBlob”是什么?
EN

Stack Overflow用户
提问于 2018-11-15 23:05:41
回答 2查看 460关注 0票数 1

我正在阅读云标识和访问管理方法: projects.serviceAccounts.signBlob的文档。我已经弄清楚了,除了身体

代码语言:javascript
复制
{
  "bytesToSign": string
}

文件上说这应该是

代码语言:javascript
复制
The bytes to sign.

A base64-encoded string.

天啊,多有帮助啊!有人能解释一下bytesToSign是什么吗?我在那里放什么?服务帐户私钥?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-16 14:24:31

Google云平台 (GCP) IAM API方法projects.serviceAccounts.signBlob允许您使用给定服务帐户的系统管理私钥对大量数据进行加密“签名”。

更多信息:数字签名

权限

为了使用服务帐户对blobs进行签名,需要确保您的帐户在所讨论的服务帐户上具有iam.serviceAccounts.signBlob权限。最简单的方法是在项目或服务帐户上授予您的帐户服务帐户令牌创建器。此角色包含以下权限:

  • iam.serviceAccounts.get
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.list
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt
  • resourcemanager.projects.get
  • resourcemanager.projects.list

使用API

这个API端点有两个参数:

  • 服务帐户名称(在请求的URL中)
  • 您想要加密签名的blob (在请求的正文中)

举个例子,假设您想要签署以下文本:

Here is some text that I would like to sign.

首先,您必须对字符串进行base64编码,该字符串变成:

SGVyZSBpcyBzb21lIHRleHQgdGhhdCBJIHdvdWxkIGxpa2UgdG8gc2lnbi4=

然后,您将使用正文中的base64 64编码字符串发布到端点。例如,如果您的项目名为my-project,并且希望使用my默认服务帐户对blob进行签名,您可以这样做:

帖子:https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/my-project@appspot.gserviceaccount.com:signBlob?key={YOUR_API_KEY}

身体:

代码语言:javascript
复制
{
 "bytesToSign": "SGVyZSBpcyBzb21lIHRleHQgdGhhdCBJIHdvdWxkIGxpa2UgdG8gc2lnbi4="
}

如果成功,它将使用用于签名blob的keyId和签名blob的signature返回响应。

示例:

代码语言:javascript
复制
{
 "keyId": "f123aa7016e4565e49a489357aa384fa25a9e789",
 "signature": "t7FT+3b0AUzqmGHofHIa8MDcfuBOKQa4/DtK6Ovel22Y9pa5G4PduW5iYY9EMQpyXW3sZEZiyFRs3M9nGkLt/DKXITCW9Ta4nvLZwNj1ahFjkujr12iUzyU+NR9/Db2LWoI/g4j1e27E9O8zqXdi+BQpKkOYHUcfbH3xcTbEJnmjU/1zEHztNRXlihNPyOjSWsKhPdVnVzxYmi6Y3Bmgb3kCZe5hhUhANo9gavsakSogi0y5z625vHiW3roQkH2fEktcDkf49GlLJEHqRu+FaCcAwgpsEs/Nm+llgfhSuHKx1tcvslmTWOGAnYDKVg74oqg4FgfhiLqBWJYRrFRwxQ=="
}

您可以在这里用API资源管理器试试 (但是将项目名称更改为您的项目,并将服务帐户名称更改为您的服务帐户)。

这也可以通过古云来完成,例如:

代码语言:javascript
复制
$ gcloud iam service-accounts sign-blob \
      --iam-account my-account@somedomain.com input.bin output.bin

有关此命令如何与更广泛的云基础设施相关联的更多信息,请参见:

您可以使用它来向非Google服务断言您的身份。如果您想断言您向外部应用程序提供的某些文本实际上来自您,则可以使用signBlob方法对文本进行签名,以便使用您的私钥对文本进行签名,然后您可以使用get_public_certificates()方法获取可用于验证该签名的证书列表。

更多:向第三方服务断言身份

票数 3
EN

Stack Overflow用户

发布于 2018-11-17 18:21:09

感谢@lukwam和@John Hanley,答案是我不需要使用projects.serviceAccounts.signBlob,也就是说,这是一个兔子洞,我不需要掉下去。我收到了一条SigningError消息,我需要为服务帐户分配角色,正如我在这个问答中所详述的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53329119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档