2017-01-01 33 views
1

AWS SDK允许以编程方式创建新的CMK。确保在AWS的KMS中只创建一个CMK

但是,我想检查一个给定的CMK是否已经创建,如果是这样,只是使用它而不是重新创建它。

据我所知,描述和别名都不是唯一标识符,并且与S3不同,它们没有唯一的名称,所以我不确定代码中的其他属性可以用于检查给定的CMK是否存在。

有关我如何做到这一点的任何想法?我错过了哪些CMK属性?

回答

1

从你的问题,目前还不清楚我是否要:

1)告诉是否一个(任意)CMK已创建;或者
2)判断一个(特定的)CMK是否已经被创建; 3)保证客户不能创建多个密钥; 3)保证客户不能创建多个密钥; 3)保证客户不能创建多个密钥;

对于1),您可以使用ListKeysDescribeKey API的组合。

就像你指出的那样,虽然没有什么独特的,你可以指定期间创建一个密钥,以便以后在使用前检查是否存在。所以2)有点棘手。你可以做什么,对创建CMK后,是使用CreateAlias API。 KMS保证别名和CMK之间的一对一映射,所以你可以这样做,然后调用DescribeKey API。 DescribeKey接受一个别名作为参数,所以应该给你你需要的。只要检查它是否存在,如果是的话,重用它,如果没有,创建它。

如果您尝试完成3,我建议您使用AWS控制台创建CMK,并将IAM角色或用户在将SDK API调用至而不是能够创建CMK。

相关问题