📨
Former2をローカルで実行する(dockerで起動する)
Former2について
AWSリソースをIaCに落とし込めるサービスです。WebサイトでAWSのキーを入力することに抵抗があったので、ローカルで実行してみたいと思います。(本記事はその備忘録です。)
Former2についての詳細な説明は下記参考サイトを参照してください。
手順
Former2の起動
# 任意の場所で実行してください
git clone https://github.com/iann0036/former2.git
cd former2
docker compose up
※ 以下のようなエラーが出る場合は、dockerを起動する前にportを変更してください。
# docker compose up の実行エラー
Error response from daemon: Ports are not available: exposing port TCP 127.0.0.1:80 -> 0.0.0.0:0: failed to connect to /var/run/com.docker.vmnetd.sock: is vmnetd running?: dial unix /var/run/com.docker.vmnetd.sock: connect: no such file or directory
docker-compose.yml
# git clone直後
ports:
- '127.0.0.1:80:80'
# 変更後
ports:
- '127.0.0.1:8089:80'
起動できたら、127.0.0.1:8089
にアクセスしてください。画像のような表示になると思います。
IAMユーザーとIAMロールの作成
- ReadOnlyAccessのみでどちらも作成します。
- IAMロールでは
信頼されたエンティティ
に作成したユーザーが含まれていることを確認してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::{ACCOUNT_ID}:root",
"arn:aws:iam::{ACCOUNT_ID}:user/{作成したIAMユーザー名}"
]
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
- IAMユーザーでは
アクセスキー
を作成してください。- ローカルで
cat ~/.aws/credentials
した際、必要なアクセスキー等が設定済みの場合は不要です。 - ローカルにアクセスキーがない場合は、
aws configure --profile {作成したIAMユーザー名}
で設定してください。
- ローカルで
Credentials設定
各種キーの取得を行います。
# ローカルで実行
aws sts assume-role --role-arn arn:aws:iam::{ACCOUNT_ID}:role/role-name --role-session-name "RoleSession1" --profile {IAM-user-name} > assume-role-output.txt
# ファイルの確認
cat assume-role-output.txt
{
"Credentials": {
"AccessKeyId": "hogehoge", # ← これを使う
"SecretAccessKey": "fugafuga", # ← これを使う
"SessionToken": "piypiyo", # ← これを使う
"Expiration": "2024-07-27T02:41:40+00:00"
},
"AssumedRoleUser": {
"AssumedRoleId": "moge:RoleSession1",
"Arn": "arn:aws:sts::{ACCOUNT_ID}:assumed-role/{IAM_USER_NAME}/RoleSession1" # ← これを使う
}
}
画像で赤く塗りつぶしている箇所に設定してください。
AWSリソースの選択
画面右上でリージョン設定を行い、出力したいAWSリソースを選択します。
必要なインスタンス等を選択し、Add Selected
→ Generate
の順にボタンを押下してください。
以下のように出力されます。必ずしも確実なものが出力されるとは限らないみたいなので、実行時には十分に注意してください。
参考
Discussion