如何检查是否为 GCP 中每个密钥环中的每个密钥启用了密钥轮换?

问题描述

有没有办法自动执行此操作,而不必为每个密钥环和密钥手动检查。我想要一个脚本,该脚本将遍历所有密钥环并为我提供未启用轮换或版本控制的密钥列表。

解决方法

此脚本只是遍历所有位置,列出所有密钥环,然后是所有密钥,然后描述每个位置以获取轮换周期并打印出密钥 URI,然后是选项卡,然后是轮换周期或“禁用”,如果没有。

#!/bin/bash

set -e

for LOC in $(gcloud kms locations list --format="get(LOCATION_ID)") ; do
  for KEYRING in $(gcloud kms keyrings list --location $LOC --format="get(NAME)") ; do
    for KEY in $(gcloud kms keys list --keyring $KEYRING --format="get(NAME)") ; do
      ROTATION=$(gcloud kms keys describe $KEY --format "get(rotationPeriod)")
      if [ -z "$ROTATION" ] ; then
        ROTATION="DISABLED"
      fi
      echo -e "$KEY\t$ROTATION"
    done
  done
done

请随时就我生锈的 bash 脚本风格提供反馈。