こんにちは、技術2課の加藤ゆです
今回は、IAM ユーザーの作成手順についてまとめていこうと思います。
本記事では、IAMユーザを1ユーザ作成し、グループに所属させます。
IAMユーザとは
IAMはIdentity and Access Managementの略です。
AWSアカウントにおける「認証・認可」の役割を担うサービスとなっています。IAMは各サービスへのアクセスを管理するもので、なかでもアクセスする「人」に対して付与するものを「IAMユーザ」と言います。
AWSアカウントにログインするログインユーザです。
どう使うのが良い?
IAMユーザは、AWSアカウント利用者ごとに作成しましょう。
1ユーザを複数人共有し、ログインすることは可能ですが、誰が何の操作をしたのか追跡が出来なくなります。
ユーザ名は、ログインユーザの名前やメールアドレスを利用すると分かりやすいと思います。
AWSアカウントを初めて作成すると、rootユーザではじまりますが、このrootユーザでアカウントの運用をすべて行うのは推奨されません。
日常的なタスクには、それが管理者タスクであっても、ルートユーザーを使用しないことです。代わりに、最初の IAM ユーザーを作成するためにのみ、ルートユーザーを使用するというベストプラクティスに従います。その後、ルートユーザーの認証情報を安全な場所に保管し、それらを使用して少数のアカウントおよびサービス管理タスクのみを実行します。
AWS アカウントのルートユーザー - AWS Identity and Access Management
rootユーザは使用せず、まずIAMユーザを作成してAWSアカウントを安全に利用しましょう。
また、よりAWSアカウントへのログイン認証を安全にするためにMFA(多要素認証)をオプションで有効化可能です。
MFAを有効化することで、より強力なセキュリティに出来るため、有効化を推奨します。
前提
- 所属させるIAMグループが作成済みであること
グループの作成は、本記事では飛ばしますので以下ご参照ください。
IAM ユーザーの作成手順
AWS公式ドキュメントはこちら
IAMサービス画面に画面遷移
「IAM」を検索して、IAMサービス画面に画面遷移
ナビゲーションペインで 「ユーザー」 > 「ユーザーを追加」 を押下
ユーザー詳細の設定
- ユーザ名
IAMユーザの名前。アカウント内で重複できません。
社用メールアドレスなどが良く使われます。
- AWSマネジメントコンソールへのユーザアクセスを提供する- オプション
コンソールへのアクセス方法は2種類あります。
1.「アクセスキー - プログラムによるアクセス」 : チェックボックス 無効
2.「パスワード - AWS マネジメントコンソールへのアクセス」 :チェックボックス 有効
1は、AWS マネジメントコンソールのGUIを利用したアクセス方法
2は、AWS API、CLI、SDKなどのプログラムによるCUIを利用したアクセス方法
GUIでしか利用する事がないユーザであれば、2となります。
コマンド叩きそうな方は1です。
- コンソールのパスワード
1.自動生成パスワード:自動でPW生成する
2.カスタムパスワード:手動でパスワードを指定
(※IAMユーザ作成後にダウンロードするユーザ情報に、パスワード情報が記載されます)
- パスワードのリセットが必要
初回ログイン時にパスワード変更を求めるか否か
作成者と利用者がPWを共有しないためには、ログイン時に利用者にPW変更してもらったほうが良いですね
「次のステップ:アクセス権限」を押下
許可を設定
本記事では、既存のIAMグループに対してユーザを追加します。
- 「ユーザーをグループに追加」を押下
- 所属させるIAMグループをチェック
ちなみにその他の選択肢は以下です
「既存ユーザーからアクセス許可をコピー」
既存のIAMユーザに付与されているすべてのポリシー(所属するIAMグループ、IAMユーザにアタッチされているIAMポリシー)をコピーし、IAMユーザを作成したい場合に選択。「既存のポリシーを直接アタッチ」
アカウントで作成済みのIAMポリシーを、作成するIAMユーザへアタッチする場合に選択。
(※ここで「ポリシーの作成」より、ポリシーを一から作成することも可能)
「次のステップ:タグ」を押下
アクセス許可の境界(Permissions boundary)とは?
オプション機能で、設定必須項目ではありません。
基本的には利用する頻度は少ないと思います(※設定せずに問題ない機能)
Permissions boundaryを設定すると、IAMユーザ、IAMロールに付与された権限とPermissions boundaryの重なる部分のみ有効となります。and条件だけ有効という事ですね
つまり、IAMで制限したい内容を限定させる場合に、Permissions boundaryをお使いいただけます
Permissions boundaryでDenyとしていれば、IAMポリシーでAllowを付与しても、有効な権限とはならないのです。IAMポリシーと二重制限となるので、使う場合はその点ご注意ください。
IAM エンティティのアクセス許可境界 - AWS Identity and Access Management
アクセス許可の境界は、管理ポリシーを使用してアイデンティティベースのポリシーが IAM エンティティに付与できるアクセス許可の上限を設定する高度な機能です。エンティティのアクセス許可の境界により、アイデンティティベースのポリシーとそのアクセス許可の境界の両方で許可されているアクションのみを実行できます。
例えばどう使う?
「管理者が、ある程度の権限を与えたユーザを作成するが、IAM権限も自由にさせるのは嫌だ」という場合に、
Permissions boundaryでIAMの権限を限定させると、
対象のIAMユーザがIAM権限をいじっても、Permissions boundaryで「Deny」とした操作は出来ないよ、とすることが出来ます。
作成するユーザに対して、IAMロールの利用や新規ユーザ作成等は出来るようにさせたいけど、自身の権限を好きに変更出来たり、不必要な権限を好きに使わせたくない時に、管理する用途で利用可能です。
タグの追加 (オプション)
今回はタグの付与は無しとします。
必要なタグ付けがあればご利用ください。
確認
- 設定値に問題が無いか確認。
「ユーザーの作成」を押下
ちなみに「管理ポリシー IAMUserChangePassword」は、「パスワードのリセットが必要」にチェックを入れた場合、必須でつくアクセス権限です。
ログイン情報入手
「.csvのダウンロード」を押下
※注意
作成したIAMユーザのログイン情報をダウンロードで出来るタイミングは、ココしかありません!
.csvファイルに入る情報は以下です。
1.ユーザ名
2.パスワード (マネジメントコンソールログイン用)
3.アクセスキー (プログラムによるログイン用)
4.シークレットアクセスキー (プログラムによるログイン用)
5.AWSマネジメントコンソールログインリンク
おわり
以上の作業で、IAMユーザの作成が完了しました。
現時点では、IAMユーザ自身に直接IAMポリシーは付いていませんので、アクセス権限はIAMグループに付与されたもののみ適応されます。
IAMユーザは、ログインユーザとなるので、利用者自身で作成する事は多いかと思います。
IAMユーザを上手く利用し、情報を正しく管理してご利用ください。
以上、ご覧いただきありがとうございました!!