Python 的 AWS SDK - Boto - 密钥对创建混淆

AWS SDK for Python - Boto - KeyPair Creation Confusion

我正在尝试使用 create_key_pair() 方法创建一个 EC2 密钥对,类似于:

key_name = 'BlockChainEC2InstanceKeyPair-1'    
def create_new_key_pair(key_name):
    newKey = objEC2.create_key_pair(key_name)
    newKey.save(dir_to_save_new_key)

密钥已创建,因为我可以使用如下所示的 get_all_key_pairs() 方法获取这些密钥:

def get_all_keypairs():
    try:
         key= objEC2.get_all_key_pairs()
    except:
        raise

get_all_key_pairs() returns 如下所示的结果表明密钥对存在:

<DescribeKeyPairsResponse xmlns="http://ec2.amazonaws.com/doc/2014-10-01/">
    <requestId>8d3faa7d-70c2-4b7c-ad18-810f23230c22</requestId>
    <keySet>
        <item>
            <keyName>BlockChainEC2InstanceKeyPair-1</keyName>
            <keyFingerprint>30:51:d4:19:a5:ba:11:dc:7e:9d:ca:49:10:01:30:34:b5:7e:9b:8a</keyFingerprint>
        </item>
        <item>
            <keyName>BlockChainEC2InstanceKeyPair-1.pem</keyName>
            <keyFingerprint>18:7e:ba:2c:44:67:44:a7:06:c4:68:3a:47:00:88:8f:31:98:27:e6</keyFingerprint>
        </item>
    </keySet>
</DescribeKeyPairsResponse>

我的问题是当我使用我用来创建密钥对的访问密钥的同一个帐户登录我的 AWS 控制台时 - 我找不到密钥。

问题是:在我的 AWS 控制台中,我可以在哪里看到我使用 create_key_pair() 方法创建的密钥对。

keypairs 是针对每个区域的。我怀疑您正在使用 boto 在一个区域中创建密钥对,而您正在 AWS 控制台中检查不同区域中的密钥对。

确保您在 boto ( .aws/config ) 中设置了默认区域,并检查您的 AWS 控制面板是否在同一区域。如果不更改仪表板中的区域以匹配您的 boto 默认区域,您的密钥对将出现在那里。

或者在创建EC2对象时传入region参数