【AWS】シークレットアクセスキー付きのIAMユーザの作成方法

  • 2020年10月31日
  • AWS, IT
AWS

こんにちはますのです。
サーバレスなシステムやAWSサービスをCLI、SDKやAPIから直接呼び出す等の動きをさせたい時に、実行用のユーザを用意する必要があります。
ただ、アクセスキーが漏れてしまった場合、設定している権限でAWS環境を弄繰り回せてしまうので管理には注意が必要です。

AWS アクセスキーを管理するためのベストプラクティス

色々と書いてありますが、ざっくりまとめるとこんな感じです。

  • ルートユーザへのアクセスキー生成はしない
  • アプリ毎にIAMユーザを作成してアクセスキー作成する
  • IAMユーザへのアクセス権限は必要な権限を設定する
  • プログラミングのコード内にアクセスキーを記述しない
アカウントを保護する最善の方法の 1 つは、AWS アカウントのルートユーザー のアクセスキーを持たないことです。 ルートユーザー アクセスキーを持つ必要がある場合 (まれです) を除いて、キーを生成しないことをお勧めします。代わりに、推奨されるベストプラクティスは、1 人以上の AWS Identity and Access Management (IAM) ユーザーを作成することです。これらの IAM ユーザーに必要なアクセス許可を付与し、AWS との日常的なやり取りに使用します。
引用:https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws-access-keys-best-practices.html
ということで、AWSアクセスキーを作成するために、新規IAMユーザ等を作成していきます。

AWSアクセスキー作成手順

AWS管理コンソール>IAM>ユーザ>「ユーザーを追加」をクリック

以下2つを設定>「次のステップ:アクセス権限」をクリック
・ユーザ名:任意の分かりやすいものを入力
・アクセスの種類:プログラムによるアクセスにチェック

CLIやSDK経由で実行するためのユーザとして作成するため、「プログラムによるアクセス」のみを許可します。
最低限の権限を付与したほうが良いため、管理コンソールへアクセスする必要が無いユーザへの付与は控えたいという筆者の思いになります。
アクセス権限を設定>「次のステップ:タグ」をクリック
※今回は「既存のポリシー:AdministratorAccess」をアタッチしています。
EC2、S3への権限だけにしたい場合はアタッチするポリシーをEC2、S3等に絞ってアタッチします。
タグの値等を任意に設定>「次のステップ:確認」をクリック
※今回タグは空白で設定
確認画面よりアタッチするポリシー等を確認>「ユーザの作成」をクリック
最後に以下のような画面が表示されます。
「.csvのダウンロード」をクリックし、IAMユーザのアクセスキーID、シークレットアクセスキーを保管しましょう。
シークレットアクセスキーはこの画面を逃すと確認不可なので注意です。
アクセスキーIDは、作成後に確認・変更がIAMユーザの「認証情報」から変更可能です。
しかし、シークレットアクセスキーは確認が不可となります。
シークレットアクセスキーを紛失した場合は、アクセスキーを再作成して発行しなおすことになるので、管理には十分に注意しましょう。

余談:アクセスキー、シークレットアクセスキー再作成方法

対象のIAMユーザを開きます。
タブ:認証情報>アクセスキーの作成をクリック
新しいアクセスキーIDとシークレットアクセスキーをCSVでダウンロードできるようになります。
※既存のアクセスキーは利用しないようであれば削除しましょう。
運用などではよく依頼もらう箇所になるのと、手順自体も簡単なので覚えてしまう手順になっております。
別記事でも使いたいことが多々あったので、せっかくの機会で記事を作ってみたのです。

IAMユーザの棚卸が面倒臭くなるので、名前は後から見ても分かるもので作成して、担当者に利用しているかを定期的に確認するようにしたほうが良いですね。
そのあたりの運用が簡単にできる方法があれば教えてほしい所存…。

最新情報をチェックしよう!