📝

MFA が必要な AWS Profile で Former2 を利用する方法

2022/06/16に公開

既存の AWS リソースから CloudFormation テンプレートを自動生成してくれる Former2 というツールがあります。
https://former2.com/

利用するには IAM の認証情報を設定する必要がありますが、今回は MFA が必要な AWS Profile で Former2 を利用する方法を紹介します。

前提

・AWS CLI での MFA 設定をしている AWS Profile がある
・Former2 の利用方法がわかる

結論

STS の get-session-token で取得した一時認証情報を Former2 に設定します。
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sts/get-session-token.html

MFA が必要な AWS Profile で Former2 を利用するまでの手順

まずは以下の AWS 公式ドキュメントに記載されている通り、get-session-token コマンドを実行します。

https://aws.amazon.com/jp/premiumsupport/knowledge-center/authenticate-mfa-cli/

$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

ただし、使用する Profile によっては、--profile オプションで使用する Profile を指定してください。

$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token --profile myprofile

コマンド実行後、以下のような一時認証情報を取得できます。

{
    "Credentials": {
        "SecretAccessKey": "secret-access-key",
        "SessionToken": "temporary-session-token",
        "Expiration": "expiration-date-time",
        "AccessKeyId": "access-key-id"
    }
}

取得した一時認証情報を Former2 に設定します。

Access Key ID, Secret Access Key, Session Tokenは、get-session-token で取得した値を入力し、Assumed Role ARN には使用する Profile に指定している IAM Role ARN を入力します。

これで Scan Account すれば、Profile に指定している IAM Role の権限で Former2 を利用できます。
ただし、Expiration に記載されている期限までの一時認証情報なので、期限が切れた際は、再度 get-session-token を実行する必要があります。

補足

AWS CLI で MFA が不要な Profile であれば、Access Key ID, Secret Access Key,Assumed Role ARN を入力するだけで Former2 を利用できます。

まとめ

今回は MFA が必要な AWS Profile で Former2 を利用する方法を紹介しました。
小ネタでしたが、参考になれば幸いです。

Discussion