我正在使用 Google Cloud KMS,并尝试使用
gcloud cli
(v492.0) 获取特定非对称密钥的最新版本。看来 --limit
标志没有考虑 --sort-by
提供的排序方向。排序是在限制之后应用的,在我看来这是错误的,排序应该先进行,然后是限制。
我目前有 3 个版本的
my-key
。要获取特定密钥的最新版本,我使用以下命令:
gcloud kms keys versions list \
--key my-key \
--keyring my-keyring \
--location global \
--filter "state:ENABLED" \
--sort-by "~createTime" \
--limit 1
但是,此命令始终会生成指定密钥的第一个版本。
NAME STATE
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/1 ENABLED
我本来希望在这里看到
cryptoKeyVersions/3
,但我却得到了cryptoKeyVersions/1
。
省略
--limit
标志会给出以下结果:
NAME STATE
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/3 ENABLED
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/2 ENABLED
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/1 ENABLED
因此排序已正确应用。
当我发出相同的命令但使用
--limit 2
:
gcloud kms keys versions list \
--key my-key \
--keyring my-keyring \
--location global \
--filter "state:ENABLED" \
--sort-by "~createTime" \
--limit 2
它返回两条记录:
NAME STATE
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/2 ENABLED
projects/.../my-keyring/cryptoKeys/my-key/cryptoKeyVersions/1 ENABLED
虽然我希望看到密钥版本
3
和2
。所以明显的原因是限制发生在先排序之后。
我的问题是:这是预期的工作方式吗?我弄错了还是这是一个错误?
在此
问题跟踪器中存在一个持续的 GCP 问题,其应用
--limit=
和--sort-by
的顺序,这是一个仍在继续的老问题,如果您想创建一个新的问题跟踪器线程来描述您的问题问题。如果您已付费支持,请尝试创建一个问题。
您可以使用
--format flag
尝试另一种解决方法来获取最新版本,请尝试以下命令,该命令给出了启用的最新版本:
gcloud kms keys versions list \
--key demo1 \
--keyring demo-1 \
--location global \
--filter "state:ENABLED" \
--sort-by "~createTime" \
--format="value(name)" | \
head -n 2
输出:
projects/………../keyRings/demo-1/cryptoKeys/demo1/cryptoKeyVersions/4
projects/………../keyRings/demo-1/cryptoKeys/demo1/cryptoKeyVersions/2