boto3で二段階認証を使用する方法
AWSの二段階認証
AWSへのアクセス、キーを使用する時に個人の携帯に入れている認証デバイスで発行されているワンタイムパスワードを入力しないと、
AWSへの機能が制限される仕組み。
大規模開発において、よりセキュアな個人アカウントの管理方法としてAWSから提供されている
問題
セキュアなのは良いが、面倒くさい。ある程度テンプレートを用意しないと開発の効率が落ちる。
やり方
こんな感じにやる
regions
は全てのリージョンに対して処理をしているが、適宜減らしても問題なし。
import boto3
import argparse
config = {
"device": "",
"AccessKeyId": "",
"SecretAccessKey": "",
"regions": ['us-east-1','us-east-2','us-west-1','us-west-2','ca-central-1','eu-central-1','eu-west-1','eu-west-2','eu-west-3','ap-northeast-1','ap-northeast-2','ap-southeast-1','ap-southeast-2','ap-south-1','sa-east-1']
}
def set_param():
parser = argparse.ArgumentParser()
parser.add_argument('-mfacode', dest='mfacode', default="")
parameter = parser.parse_args()
return parameter
def get_one_time_token(access_key_id,secret_access_key,device,mfa_code):
duration_seconds = 86400
client = boto3.client('sts',aws_access_key_id =access_key_id,aws_secret_access_key = secret_access_key)
response = client.get_session_token(DurationSeconds=duration_seconds,SerialNumber=device,TokenCode=mfa_code)
return response
def main():
parameter = set_param()
token = get_one_time_token(config['AccessKeyId'],config['SecretAccessKey'],config['device'],parameter.mfacode)
one_time_access_key_id = token['Credentials']['AccessKeyId']
one_time_secret_access_key = token['Credentials']['SecretAccessKey']
session_token = token['Credentials']['SessionToken']
for region in config['regions']:
#Please input main function
print 'This region is ' + region
instance_name = 'hogehoge'
ec2_client = boto3.client(
'ec2',
aws_access_key_id = one_time_access_key_id,
aws_secret_access_key = one_time_secret_access_key,
region_name = region,
aws_session_token = session_token
)
response = ec2_client.describe_instances(Filters=[{'Name':'tag:Name','Values':[instance_name]}])
print response
main()
Author And Source
この問題について(boto3で二段階認証を使用する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/picapica/items/a44163efc2686fec49d6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .