用途 → ブラウザで AWS 管理コンソールを開かずに、EC2 の各インスタンスの IP アドレスを確認したい。
(1) IAM 管理コンソール で「新規ユーザの作成」から myproject
ユーザを作成する。(プロジェクトごとのユーザ)
(2) 「ユーザーのセキュリティ認証情報を表示」から「アクセスキー ID」と「シークレットアクセスキー」をコピーして、~/.aws/credentials
に記載する。
[myproject]
aws_access_key_id = XXXXXXXX
aws_secret_access_key = XXXXXXXX
(3) ~/.aws/config
に以下を記載する
[profile myproject]
output = text
region = ap-northeast-1
(4) IAM 管理コンソールのユーザ一覧画面に戻って、 myproject
ユーザを選択して、「アクセス許可」タブで「ポリシーのアタッチ」を開く。AmazonEC2ReadOnlyAccess
を選択してポリシーをアタッチする。
(5) Terminal で以下のコマンドを叩く。
aws ec2 describe-instances --profile myproject --query 'Reservations[].Instances[].[PublicIpAddress,Tags[?Key==`Name`].Value|[0]]'
(6) 各 EC2 インスタンスの IP アドレスと、Name タグが一覧で出力される。
52.11.22.33 foo
52.44.55.66 bar
52.77.88.99 baz
(2016-07-21 追記)
~/.aws/
内にファイルを作らなくても、以下の手順で環境変数経由でも指定できる。
export AWS_ACCESS_KEY_ID='XXXXXXXXXXXXXXXXXXXX'
export AWS_SECRET_ACCESS_KEY='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
aws ec2 describe-instances --region 'ap-northeast-1' --output text --query 'Reservations[].Instances[].[PublicIpAddress,Tags[?Key==`Name`].Value|[0]]'