内容简介:相關的文章可以參考「首先是在
AWS 可以設定 IAM 使用者強制使用 MFA (包括 API 的操作),在這種情況下如果要使用 AWS Command Line Interface 就得透過 AWS STS (AWS Security Token Service) 產生另外一組 key + secret + session key,然後這組通行時間預設是 12 小時。
相關的文章可以參考「 How do I use an MFA token to authenticate access to my AWS resources through the AWS CLI? 」這篇,然後我就寫了一段 shell script 來做這件事情。
首先是在 ~/.aws/config
內放入 MFA 的 ARN,像是這樣:
[profile mycompany] mfa = arn:aws:iam::012345678901:mfa/gslin region = us-east-1
然後就可以用 aws.mfa mycompany
指令產生出一個會把 key + secret + session key 包進去的 shell:
function aws.mfa() {
local MFA_ARN
local MFA_TOKEN
local PROFILE="$1"
local STSDATA
MFA_ARN="$(python3 -c "import configparser; import os; c=configparser.ConfigParser(); c.read('{}/.aws/config'.format(os.environ['HOME'])); print(c['profile ${PROFILE}']['mfa'])")
"
echo "Reading ${PROFILE} and going for token ${MFA_ARN} ..."
echo -n 'MFA Password: '
read -r MFA_TOKEN
STSDATA="$(aws --profile "${PROFILE}" sts get-session-token --serial-number "${MFA_ARN}" --token-code "${MFA_TOKEN}")"
export AWS_ACCESS_KEY_ID="$(echo "${STSDATA}" | jq -r .Credentials.AccessKeyId)"
export AWS_SECRET_ACCESS_KEY="$(echo "${STSDATA}" | jq -r .Credentials.SecretAccessKey)"
export AWS_SESSION_TOKEN="$(echo "${STSDATA}" | jq -r .Credentials.SessionToken)"
echo 'Running an independant shell...'
${SHELL}
}
很明顯的裡面用到了 Python 3 與 jq ,這兩個應該都可以直接裝系統的版本就可以了。
後續的操作就跟原來的用法都一樣,像是 aws --region=us-east-1 s3 ls
這樣的指令。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用 ClosedXML 結合 LINQ 操作
- 使用git操作svn仓库
- golang 使用xorm操作mysql
- 使用Python操作消息队列RabbitMQ
- SpringBoot 使用JestClient操作Elasticsearch
- 使用Python实现批量ping操作
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Building Websites with Joomla!
H Graf / Packt Publishing / 2006-01-20 / USD 44.99
This book is a fast paced tutorial to creating a website using Joomla!. If you've never used Joomla!, or even any web content management system before, then this book will walk you through each step i......一起来看看 《Building Websites with Joomla!》 这本书的介绍吧!