AWS CLIでよく使う基本的なコマンド(逆引き)
Post

AWS CLIでよく使う基本的なコマンド(逆引き)

AWS CLIでよく使うコマンドなどを逆引きでまとめました。この記事は随時更新予定です。

逆引きコマンドチートシート

認証情報やアカウント切り替えなどの基礎コマンド

登録しているAWSプロファイルリストの一覧

1
2
3
4
$ aws configure list-profiles
default
hogehoge
higehige

コマンド毎でのプロファイルの切り替え

1
2
3
4
5
6
$ aws sts get-caller-identify --profile hogehoge
{
    "UserId": "UserIDForHogehoge",
    "Account": "AcountHogehoge"
    "Arn": "arn:aws:iam::AcountHogehoge:user/hogehoge"
}

IAMユーザーやロール、それに紐づくクレデンシャルを知りたいとき

1
2
3
4
5
6
7
8
9
10
11
12
$ aws sts get-caller-identify
{
    "UserId": "UserID",
    "Account": "Acount"
    "Arn": "arn:aws:iam::AcountHogehoge:user/username"
}
$ # key{UserId, Account, Arn}を指定することで情報の一部を取得可能
$ aws sts get-caller-identify --query Arn
"arn:aws:iam::AcountHogehoge:user/username"
$ # アウトプットのスタイルも指定可能
$ aws sts get-caller-identity --query Arn --output text
arn:aws:iam::AcountHogehoge:user/username

作成したポリシーファイルが間違っていないかの確認方法

下記のように、policy-template.jsonを作成する。

1
2
3
4
5
6
7
8
9
10
11
12
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::AcountHogehoge:user/hogehoge"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

下記のCLIコマンドで確認することで、間違っている箇所があればエラーがでる。指示にしたがって修正する。

1
$ aws accessanalyzer validate-policy --policy-document file://policy-template.json --policy-type IDENTITY_POLICY

aws iam の後によく使うコマンド

まずは公式ドキュメントを参考にしましょう。

IAMロールを作るとき

下記のように、policy-template.jsonを作成する。

1
2
3
4
5
6
7
8
9
10
11
12
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::AcountHogehoge:user/hogehoge"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

上記のコマンドでIAMロールを作成する。jsonファイルにエラーがあるとコマンドを実行することができない。エラーの出力がわかりにくいため、エラーが出る場合は作成したポリシーファイルが間違っていないかの確認方法で確認する方が良い。

1
$ aws iam create-role --role-name HOGEHOGERole --assume-role-policy-document file://policy-template.json

現在作成しているIAMロールの確認

以下のコマンドで出力することが出来ます。

1
$ aws iam list-roles

上記のコマンドでは出力が冗長になり過ぎるので、以下のオプションで適切にフィルタリングするとよい。

1
$ aws iam list-roles --query 'Roles[*].RoleName'

grep するのもおススメ

1
$ aws iam list-roles --query 'Roles[*].RoleName' | grep AWS

IAMロールを削除する

1
$ aws iam delete-roles --role-name RoleName

もちろん、上記の方法でクエリも使用できます。公式のドキュメントでは最近のroleの使用状況も確認しております。適切な手順で間違えないように削除しましょう。

参考図書まとめ

第3章補足:書籍『SolidityとEthereumによる実践スマートコントラクト開発 ―Truffle Suiteを用いた開発の基礎からデプロイまで』