繁体   English   中英

列出所有密钥时忽略 AWS 托管/默认 KMS 密钥?

[英]Ignoring AWS Managed/Default KMS Keys When Listing All Keys?

我写了下面的函数:

    private List<KeyListEntry> getKeyListEntries(AWSKMS kms)
{
    ListKeysRequest listKeysRequest = new ListKeysRequest();
    List<KeyListEntry> kmsKeys = new ArrayList<>();
    boolean moreKeys = false;

    do
    {
        ListKeysResult listKeysResult = kms.listKeys(listKeysRequest);
        kmsKeys.addAll(listKeysResult.getKeys());
        moreKeys = listKeysResult.getNextMarker() != null && !listKeysResult.getNextMarker().equals("");
        listKeysRequest.setMarker(listKeysResult.getNextMarker());
    } while (moreKeys);

    return kmsKeys;
}

它会在我的帐户中构建所有 KMS 密钥的列表。 'moreKeys' 标志用于处理响应的分页。 在这个列表的其他地方,我打电话给:

kms.listResourceTags

所以我可以确定每个单独键上的标签并相应地执行操作。 我的问题是,我通常会在某个时候点击 ACM 等的默认主密钥。

默认密钥的这些策略不允许 root 帐户执行kms:ListResourceTags ,我无法修改它们来更改它。 我在构建列表时是否有一种简单的方法可以过滤掉,这样我就可以忽略任何 AWS 默认 KMS 密钥?

这最终成为亚马逊的错误! 我提出了一个案例,ACM 团队在默认密钥上修复了该策略。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM