stsコマンドを使用し、アクセス用のアクセスキーID、シークレットアクセスキー、セッショントークンを取得(有効期限のデフォルトは12時間。--duration-secondsを使用して秒単位で有効期限を指定できる)
% aws sts get-session-token --serial-number [MFAデバイス用のARN] --token-code [MFAデバイスのトークン]
{
"Credentials": {
"AccessKeyId": "[アクセスキーID]",
"SecretAccessKey": "[シークレットアクセスキー]",
"SessionToken": "[アクセス用のセッショントークン]",
"Expiration": "2020-06-21T22:19:35+00:00"
}
}
configureコマンドでprofile指定し、profile作成
% aws configure --profile mfa-temporary-access
AWS Access Key ID [None]: [stsコマンドで取得したアクセスキーID]
AWS Secret Access Key [None]: [stsコマンドで取得したシークレットアクセスキー]
Default region name [None]: ap-northeast-1
Default output format [None]: json
credentialsファイルに直接セッショントークンを追記
credentials
[mfa-temporary-access]
aws_access_key_id = [stsコマンドで取得したアクセスキーID]
aws_secret_access_key = [stsコマンドで取得したシークレットアクセスキー]
aws_session_token = [stsコマンドで取得したセッショントークン]
指定されたセッショントークンでアクセス可能になる
% aws s3 ls --profile mfa-temporary-access
環境変数の設定でもいける。
export AWS_ACCESS_KEY_ID=[stsコマンドで取得したアクセスキーID]
export AWS_SECRET_ACCESS_KEY=[stsコマンドで取得したシークレットアクセスキー]
export AWS_SESSION_TOKEN=[stsコマンドで取得したセッショントークン]