Sub Documents

AWS CLIのあんまりよくない使い方


 AWS CLIを使うときはIAMでAWS CLI用のユーザーを作成しておきましょう。IAMを使える権限で操作・設定します。(通常はrootユーザーとかになるかもしれません。) 作成したユーザーにAdministratorAccessという管理ポリシーの権限を与えればいったんOKです。これがあんまりよくない使い方ということになります。何故ならフルパーミッションでrootに準ずる権限があるからです。ただこれらAWSを扱う際のメリットとして、権限付与の複雑性と管理の面から権限を絞ると実行できない作業が多発して権限の分類や選り分けの検証にどうしてもフルパーミッションが必要な場合があるので、これは背に腹は変えられないということで、実践的にはこうなります。但しフルパーミッションは十分に注意して使いましょう。というのも破壊的な実行コマンドが可能になるからです。Linuxでいうrm -fR /が実行可能になってしまいます。

  1. aws cli専用のユーザーを作成する
  2. Access keyとsecretを発行する
  3. AWS CLIのインストールと設定

ユーザーの作成

aws cli IAMのトップページから左サイドメニューのアクセス管理からユーザーを選択します。右上の青いボタンの「ユーザー追加」を押下してユーザー作成ページに移りましょう。
 ユーザー名には任意の適当なもの、今回はaws-cliとします。AWS 認証情報タイプを選択は、アクセスキー - プログラムによるアクセスとパスワード - AWS マネジメントコンソールへのアクセスの両方にチェックを入れておきましょう。コンソールのパスワードは、カスタムパスワードを選択して自分のわかるパスワードを入力します。(忘れるとログインできなくなります。)パスワードのリセットが必要では、チェックを入れておきます。

aws cli アクセス許可の設定では、既存のポリシーを直接アタッチを選択してAdministratorAccessにチェックを入れます。アクセス権限の境界の設定では、アクセス権限の境界を設定せずに user を作成するを選択してください。次のページのタグはいったん空で問題ないです。
 確認画面では内容を確認して、ユーザー作成ボタンを押します。これでユーザーの作成は完了です。完了ページでユーザー情報のCSVダウンロードとIAMユーザーのログイン方法w案内するメール送信ができるのでやっておきましょう。

Access keyの発行

 IAMのユーザー一覧に戻って、先程作成したユーザーを選択します。認証情報タブをクリックして「アクセスキーの作成」ボタンを押します。これでアクセスキーの発行ができます。出てきたダイアログからCSVダウンロードするか、またはシークレットキーを表示してコピーして保管します。(ここでシークレットアクセスキーを保管し忘れたら二度と見ることができません)
 注意書きにもあるようにこれらの情報をプログラム上にベタ書きして公開すると比較的大変なことが起こるので注意してください。

AWS CLIの設定

丁寧な公式マニュアルがあるので、こちらを参考にしてインストールします。

$ aws --version
aws-cli/2.7.21 Python/3.9.11 Darwin/21.5.0 exe/x86_64 prompt/off

こんな感じでバージョンが表示されればOKです。
 続いてaws configureを実行します。先程作成したユーザー情報を準備しておきます。また、AWSアカウントをすでにもっていて~/.awsがある場合は、このconfigcredentialsに複数のアカウントが追加登録されることになります。
 AWSアカウントは[default]とprofileで指定したユーザー名で識別します。アクセス情報、つまりクレデンシャルはプロファイル指定で行うことになります。プロファイルはユーザー名と違うものでよいですが、ここでは便宜上ユーザー名と同じもので設定してゆきます。

 % aws configure --profile aws-cli
AWS Access Key ID [None]: Axxxxxxxxxxxxxxxxxxx
AWS Secret Access Key [None]: 2qeBxxxxZTYYxxxxdH9/xxxx/inrxxxxMKdmxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: json

これでaws cliの設定は完了です。コマンド実行時には--profile {$PROFILE_NAME}を指定してください。
試しにこんなコマンドを打ってみます。IAMの登録ユーザーが表示されます。

$ aws --profile aws-cli iam list-users

これでAWS CLIが使えるようになりました。