当使用Amazon Selling Partner API时,可能会遇到'Too Many Active Keys”错误。这是由于存在太多未过期的身份验证密钥,而API仅限制同时使用200个活动密钥。
为了解决该问题,可以通过以下代码示例来清理未使用的身份验证密钥:
import boto3
client = boto3.client('sts')
account_id = client.get_caller_identity()['Account']
iam = boto3.resource('iam')
access_keys = iam.User().access_keys
for key in access_keys.all():
if not key.active:
continue
response = client.list_access_keys(UserName=key.user_name)
keys = response['AccessKeyMetadata']
if len(keys) > 1:
keys = sorted(keys, key=lambda x: x['CreateDate'])
old_key = keys[0]
iam.AccessKey(key.user_name, old_key['AccessKeyId']).deactivate()
print(f'User {key.user_name}: Deactivated key {old_key["AccessKeyId"]}')
此代码使用boto3库中的IAM和STS服务来检索活动的身份验证密钥。对于不活动的密钥,代码将跳过并处理下一个密钥。对于具有多个活动密钥的硬盘,代码将对其进行排序,并使用IAM服务中的AccessKey方法来停用最旧的密钥。
执行此代码后,您可以使用Amazon Selling Partner API而不会遇到'Too Many Active Keys”错误。