2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MFAデバイスを使用している際のsls deployを実行するまで

Posted at

目的

Serverless Frameworkを用いてAWSにデプロイする際に、IAMのユーザがMFAであった際に、セッショントークンが必要となる。その際のセッショントークンの取得方法と設定方法をまとめた。

環境

ShiroUz@MBP serverless % sls -v
Serverless: Running "serverless" installed locally (in service node_modules)
Framework Core: 2.66.1 (local)
Plugin: 5.5.1
SDK: 4.3.0
Components: 3.18.0

ShiroUz@MBP serverless % sw_vers
ProductName:    macOS
ProductVersion: 11.6
BuildVersion:   20G165

ShiroUz@MBP serverless % aws --version
aws-cli/2.3.4 Python/3.9.7 Darwin/20.6.0 source/x86_64 prompt/off

セッショントークンの取得

MFAデバイスを使用しているため以下の対応が必要でした。

ShiroUz@MBP layer % aws sts get-session-token --serial-number MFA_ARN --token-code MFA_TOKEN_CODE --region us-east-1 --profile PROFILE_NAME
{
    "Credentials": {
        "AccessKeyId": "xxxxxxxxx",
        "SecretAccessKey": "yyyyyyyyyy",
        "SessionToken": "zzzzzzzzzzzz",
        "Expiration": "2021-11-21T17:57:30+00:00"
    }
}

MFA_ARN: IAMのユーザで確認できるMFAのARN (e.g.arn:aws:iam::yyyyyyyyyy:user/xxx)
MFA_TOKEN_CODE: MFAのデバイスで確認できる6桁の数値
PROFILE_NAME:~/.aws/configに記載のあるプロファイル名

セッショントークン等の設定

$ sls deployを実行するためにも、以下のようにして、アクセスキー、シークレットキー、セッショントークンを設定する必要があります。なお、credentialに書き込んでいないのは、Expirationが設定されているため、直接環境変数に設定しても、問題ないと判断しているからです。

ShiroUz@MBP  serverless % export AWS_ACCESS_KEY_ID=xxxxxxxxx
ShiroUz@MBP  serverless % export AWS_SECRET_ACCESS_KEY=yyyyyyyyyy
ShiroUz@MBP  serverless % export AWS_SESSION_TOKEN=zzzzzzzzzzzz

完了後、sls deployが可能となる。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?