api - 谷歌云自动删除上次创建的服务帐号密钥
问题描述
作为自动化的一部分,我正在尝试为服务帐户创建一个临时访问密钥,进行更改,然后删除这个最后使用的密钥。
我被卡住的地方是列出并用这个结果做一些事情:
gcloud iam service-accounts keys list --iam-account=dummy@dummy.com --format=json
此命令将随机列出此服务帐户的所有可用密钥,我还没有找到一个好的格式来帮助我。
尝试使用带有和不带有通配符 * 的日期值 ( year-month-day ),但它无法识别它。
> gcloud iam service-accounts keys list --iam-account=dummy@dummy.com
> --format="value(validAfterTime[2021-07-11])"
从逻辑上讲,我可能想比较每个键的 validAfterTime 值,然后得到最高的值,但我不知道如何在 shell 中以编程方式执行此操作。在 python 中,我会比较这些值并获得具有最大值的名称。
什么是创建最后一个以便我可以删除它的简单方法?
编辑
好的,所以它比我想象的要简单。我需要做的是还添加标志排序依据,我将在那里放置相同的validAfterTime。
> gcloud iam service-accounts keys list --iam-account=dummy@dummy.com
> --format="value(validAfterTime[2021-07-11])" --sort-by=validAfterTime | tail -1 | awk -F/ '{print $6}'
Sort by 将按升序对值进行排序,tail -1 将给我最后一个结果, print 6 将给我使用 / 作为分隔符的第 6 个元素。
谢谢
解决方案
您应该使用的命令如下所示:
gcloud iam service-accounts keys list --iam-account=dummy@dummy.com
--format=json --sort-by=~validAfterTime --limit=1
基于谷歌云 SDK 参考--sort-by 做:
要排序的资源字段键名的逗号分隔列表。默认顺序是升序。为字段添加前缀“~”表示该字段的降序
因此,您可以使用sort-by
基于validAfterTime
字段获取 SA 密钥上的最后一个条目。您可以使用 --limit 来限制您将获得的条目数。
推荐阅读
- php - 将 \u 表情符号字符串转换为电子邮件正文的 utf-8
- docker - 我怎样才能取消黑名单'libnvomx.so',以解决“没有这样的元素工厂'omxh264enc'!”?
- python - python函数的行为不同
- git - 如何防止已删除的标签再次推送到远程 git repo?
- vue.js - 如何从 nuxt 应用订阅 redis 频道
- laravel - 通过 Dynamics 365 在 Laravel 中进行附加身份验证
- groovy - 如何在 Groovy 中打印当前 XML 节点的路径?
- sapui5 - assert.async() 永远不会失败
- php - 删除 Woocommerce 单品页面价格后的部分文字
- java - 如何修复 Spinner setAdapter() 不起作用?