首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何区分Google平台中的系统管理密钥和客户管理密钥?

如何区分Google平台中的系统管理密钥和客户管理密钥?
EN

Stack Overflow用户
提问于 2021-02-10 10:23:34
回答 2查看 261关注 0票数 0

我正在尝试编写一个云函数来删除为服务帐户生成的密钥。但它不允许云功能删除系统托管密钥。

如何动态区分系统管理和客户管理密钥?这样,如果是系统托管密钥,我可以跳过,如果是客户管理密钥,则可以删除。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-12 09:52:32

我在另一个问题的回答中知道了这个问题的答案。

如何使用云功能执行服务帐户管理操作(创建、列表、删除)?

贷给@jccampanero

在高层次上,可以通过查看KeyType 枚举来识别它。

  • KEY_TYPE_UNSPECIFIED未指定的密钥类型。它的存在 该消息将立即导致错误。
  • USER_MANAGED用户托管密钥(由用户管理和旋转)。
  • SYSTEM_MANAGED系统管理密钥(由Google管理和旋转)。
票数 1
EN

Stack Overflow用户

发布于 2021-02-10 17:26:54

将此作为社区wiki发布,因为它基于@JohnHanley的评论,因为这些都是对这个问题的有效回答:

Google不允许访问Google管理的服务帐户密钥的私钥。每个服务帐户都有一个,即使不可见。我不知道如何检测哪一个是哪一个,但是关于如何做的一个想法是尝试下载关键材料(JSON)。

如果拒绝,它是一个系统托管密钥(或者您没有权限),如果您被允许,那么它是一个由IAM用户创建的密钥。

注意事项:系统托管密钥总是第一个。如果Google在创建服务帐户时自动创建第一个键,这是有意义的。这个键也会由Google自动旋转。

补充信息( John Hanley )

我没有我的评论的参考链接。我通过观察和编写代码就知道了这一点。我还对IAM和安全帐户在较低级别上的工作方式有了相当深入的理解。

Google服务帐户由RSA私钥组成。每个私钥都有相应的公钥。Google甚至为这些“私有”私钥发布了公钥。

创建服务帐户但不创建密钥对时,仍然可以在Google服务中使用服务帐户。在我的例子中,我使用了Compute和一个新的服务帐户。Google元数据服务器不为服务帐户提供私钥。这是诸如SignBlob这样的IAM函数的原因之一。您不能访问私钥,但是可以访问。

在我的测试中,我用IAM对数据进行了签名,然后用公钥验证了签名。因此,我可以推断出一个没有密钥的服务帐户实际上有一个“私有”私钥,也就是原始问题中的系统托管密钥。

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

https://stackoverflow.com/questions/66135018

复制
相关文章

相似问题

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