AWS CLIを使用してIAMユーザー毎に認証プロファイルを作成する方法

AWS
この記事はこんな人にオススメ
  • 複数のIAMユーザーの認証情報を適切に管理したい人
  • IAMユーザー毎に認証プロファイルを作成したい人
  • AWS CLIを使用して認証プロファイルを作成したい人

どうも、Shinyaです。

この記事では、AWS CLIを使用してIAMユーザー毎に認証プロファイルを作成する方法について書いていきます。

AWSのサービスを利用してアプリケーションを開発していると、ローカル環境で動作確認を行う際にアプリで使用するIAMユーザーの認証情報を環境変数等に登録して使用したい場面があると思います。

しかし、AWSで運用しているアプリケーションで使用されているIAMユーザーが数個程度であれば環境変数を使用して個別に管理することも可能かもしれませんが、使用するIAMユーザーの数が増加すると環境変数を使用した方法ではあっという間に管理が困難になることが容易に予想できます。

そのため、環境変数を直接使用する代わりにIAMユーザー毎の認証プロファイルを作成して管理することがAWS公式のガイドラインで推奨されています

事前準備

この記事ではAWS CLIを使用してIAMユーザー毎の認証プロファイルを作成していくので、事前にAWS CLIをインストールしておく必要があります。そのため、AWS CLIをまだインストールしていない方は、次の記事を参考にAWS CLIをインストールしてください。

IAMユーザーの認証情報を設定する

まずは、AWS CLIIAMユーザーの認証プロファイルを作成するに当たって、実際に使用するIAMユーザーの認証情報を設定していきます。

AWS IAMで検証用のIAMユーザーを作成する

この記事で認証プロファイルを作成する際に使用する検証用のIAMユーザーをAWS IAMで作成しておきます。

今回の記事では以下のような検証用のIAMユーザーを使用していきます。これはAmazon S3のリソースに対して読み取り権限だけがアタッチされている参照ユーザーです。

作成したIAMユーザーのアクセストークンを発行する

次に、AWS CLIで認証プロファイルを作成する際には、作成したIAMユーザーのアクセスキーが必要なので、IAMユーザーの作成と併せてアクセスキーを発行しておきます。

作成したIAMユーザーの詳細画面から、「概要」のセクションにある「アクセスキーを作成」をクリックしてください。

上記の「アクセスキーを作成」をクリックすると、次のようなアクセスキーのユースケースを選択する画面に遷移します。

この画面でユースケースを選択するとAWS公式から推奨されるベストプラクティスが代替案として表示されます。

ほとんどの場合、IAMユーザーを使用したアクセスキーを発行する方法でも問題はありませんが、セキュリティ等の要件によってアクセスキーの発行では不安という場合はAWS公式から推奨された代替案の使用を検討してみてください。

また、アクセスキーを使用する場合でも、AWS公式から次のようなベストプラクティスが推奨されています

  • アクセスキーをプレーンテキストもしくはコードリポジトリで、またはコードに保存しないでください。
  • 不要になったアクセスキーを無効化または削除します。
  • 最小権限の許可を有効にします。
  • アクセスキーを定期的にローテーションします。

アクセスキーの管理の詳細については、「AWS アクセスキーを管理するためのベストプラクティス」を参照してください。

AWS公式によるアクセスキー管理のベストプラクティスについての説明から抜粋

今回の記事では参考までに次の手順で各項目を選択しました。

  1. ユースケース: コマンドラインインターフェース(CLI)
  2. 確認」をチェック
  3. 次へ」ボタンをクリック

そうすると、アクセスキーを管理する際の説明タグを設定する画面に遷移しますので、必要な場合は任意の説明タグを入力してください。

説明タグについては入力が必須ではないので、入力が不要の場合はそのまま「アクセスキーを作成」のボタンをクリックしてください。

上記の「アクセスキーを作成」をクリックすると、発行されたアクセスキーとシークレットアクセスキーを取得するための画面に遷移します。

アクセスキーについては後でも確認することはできますが、シークレットアクセスキーはこの画面でしか確認できないので、確実にコピーして安全な場所に保管するようにしてください。アクセスキーとシークレットアクセスキーを安全な場所に保存したら、「完了」のボタンを押してください。

アクセスキーとシークレットアクセスキーはIAMユーザーへのアクセスを可能にする重要な認証情報ですので、絶対に他者と共有したり公開されている場所で保管しないでください

シークレットアクセスキーのコピーは、「表示」を押して値をコピーするよりも、「コピー」アイコンを使用してコピーした方が安全かつ確実です。

AWS CLIで認証プロファイルを作成する

さて、ここまでの作業でIAMユーザーの認証情報を設定できたので、実際にAWS CLIでこの認証情報を使用して認証プロファイルを作成していきます。

awsコマンドで認証プロファイルを作成する

コマンドラインで次のawsコマンドを実行してください。

aws configure --profile test-day-one-shinya

上記のコマンドの「test-day-one-shinya」の部分は、実際に使用するIAMユーザーの特性に応じて任意のプロファイル名を入力してください。

コマンドラインで上記のawsコマンドを実行すると、先ほど作成したIAMユーザーの認証情報を対話形式で質問されますので、順番に次のように回答していきましょう。

  1. AWS Access Key ID: プロファイルに登録するIAMユーザーのアクセスキー
  2. AWS Secret Access Key: プロファイルに登録するIAMユーザーのアクセスシークレットキー
  3. Default region name: デフォルトで使用したい任意のリージョンを入力
  4. Default output format: 特にこだわりがなければ「json」でOK

上記の入力が完了すると、先に入力したプロファイル名で認証プロファイルが作成されます。

作成した認証プロファイルは次のawsコマンドで一覧を表示することができます。

aws configure list-profiles

作成した認証プロファイルを実際に使用する

せっかく認証プロファイルを作成したので、実際に動作確認してみましょう。

この記事で作成した検証用のIAMユーザーはAmazon S3に対する読み取り権限しかアタッチされていないので、参考までにS3に関連するawsコマンドを使用して動作確認をしていきます。

もし任意のIAMユーザーで認証プロファイルを作成した場合は、アタッチされている権限に応じて使用するawsコマンドに置き換えてください。

試しに、コマンドラインで次のawsコマンドで実行して、検証用に作成したIAMユーザーの認証プロファイルでS3バケットの中身を参照できるか確認してみます。

aws s3 ls s3://test-day-one-shinya --profile test-day-one-shinya

上記のコマンドの「test-day-one-shinya」の部分は、実際に作成したプロファイル名を入力してください。

また、上記のS3バケットは検証用に作成したものなので、私以外のユーザーはアクセスすることができません。そのため、使用するawsコマンドは実際に利用可能なサービスとリソースを指定するようにしてください

そうすると、次のようにS3バケットの中身を取得することができました。

yyyy-MM-dd HH:mm:ss          0 hello_world
Shinya

フリーランス。プログラマー歴10年以上。Amazoned Programmer (Amazon中毒のプログラマー)。

仕事ではJavaとSQLとかを主に使ってアプリケーションを開発しています。BIツールを使用したビッグデータの可視化や解析から、AWSなどのクラウド技術の活用に興味があり、日々研究と研鑽を重ねています。このブログでは日々の学習のアウトプットを投稿していこうと思います。

お気に入りの言葉は「Day 1」と「Data Never Sleeps」。

Shinyaをフォローする
AWSAWS CLIAWS IAMSecurityTech
Shinyaをフォローする
タイトルとURLをコピーしました