我写了下面的函数:
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密钥?
答案 0 :(得分:0)
这最终是一个Amazon错误!我提出了一个案例,并且该策略由ACM团队针对默认密钥制定。