Я пытаюсь написать код Python, который использует несколько различных ключей AWS, некоторые из которых, возможно, истекли.Мне нужно, учитывая пару ключей AWS в виде строк, проверить, является ли данная пара ключей действительной с помощью boto3.Я бы предпочел не делать ничего, например использовать os.system для запуска
echo "$aws_key_id
$aws_secret_key\n\n" | aws configure
и затем читать ответ aws list-buckets.
Ответ должен выглядеть примерно так:
def check_aws_validity(key_id, secret):
pass
где key_id
и secret
- строки.
Обратите внимание, что это не повторение Проверка учетных данных S3 без GET или PUT с использованием boto3 , как Iнет ключей в файле boto3.profile.
Заранее спасибо!
РЕДАКТИРОВАТЬ Из ответа Джона Ротенштейна я получил следующую функцию для работы.
def check_aws_validity(key_id, secret):
try:
client = boto3.client('s3', aws_access_key_id=key_id, aws_secret_access_key=secret)
response = client.list_buckets()
return true
except Exception as e:
if str(e)!="An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.":
return true
return false