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

时间:2020-03-27 11:32:13

标签: amazon-web-services aws-kms

我写了下面的函数:

    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密钥?

1 个答案:

答案 0 :(得分:0)

这最终是一个Amazon错误!我提出了一个案例,并且该策略由ACM团队针对默认密钥制定。