IAMとは?
IAMは, Identity and Access Managementの略で, AWSにおけるユーザとユーザの権限を管理するためのサービスです. AWSを利用する際にはまずAWSのアカウント(ルートアカウント)を作る訳ですが, 複数人で開発をする際にその1つのアカウントを共有して作業を行うのは, 全員に管理者権限を与える事になってしまうので, セキュリティ的に見ても非常によくありません.
IAMを利用することで, 1つのAWSアカウントに複数のユーザを紐付け, 更にそれらに個別の権限を与えることが出来ます. これによって, 開発者の役割やステータスに応じて適切な権限を与えるという「開発者の管理」が出来るだけでなく, 開発者が操作してはならない操作を誤って行ってしまうリスクも軽減することができます.
設定
それでは早速IAMの設定をしていきましょう. 今回はチーム開発ではなく, 個人の実験用アカウントなので, 自分用のIAMユーザだけを作成する形にしようと思います.
IAMコンソールにアクセスすると, 次のような表示になっていると思います.
まずは, 自分用のIAMユーザを作ってみましょう.
個々のIAMユーザの作成
まず, 左側のメニューの「ユーザー」をクリックします.
最初の状態では誰も登録されていないので, 「新規ユーザーの作成」をクリックします.
作成したいユーザ名を入力し, 「作成」ボタンをクリックします. 今回は, 自分のアカウントを作りたいので「papix」としました.
「認証情報のダウンロード」をクリックすると, アクセスキーとシークレットアクセスキーがCSV形式で取得できます. また, 「ユーザーのセキュリティ認証情報」をクリックすると, ブラウザ上から2つのキーを確認することが出来ます.
これらの情報はこのページを閉じると確認できなくなってしまうので, しっかり記録に残しておきましょう.
これでユーザの作成は完了です. 左メニューの「ユーザー」をクリックすると, このように「papix」というユーザが登録されていることが確認できます.
MFAをアクティブ化
続いて, ルートアカウントのセキュリティを強化します. いわゆる二段階認証を有効にしましょう.
IAMコンソールの「セキュリティステータス」から, 「ルートアカウントのMFAをアクティブ化」を選択し, 「MFAの管理」をクリックします.
今回は, 私物のiPhoneを利用して二段階認証を設定するので, 「仮想MFAデバイス」を選択して「次のステップ」をクリックします.
そのまま「次のステップ」をクリックします.
中央のQRコードを, MFAに対応したアプリケーションから読み込みます. iPhoneの場合, Google Authenticatorが利用できるので, このアプリケーションからQRコードを読み込むと, 6桁の整数が表示され, 一定期間ごとに更新されるようになります.
「認証コード1」に6桁の数値を入力した後, 30秒程待って新しく生成された6桁の数値を「認証コード2」に入力し, 「仮想MFAのアクティブ化」をクリックします.
これでMFAが有効になりました.
グループを使用してアクセス許可を割り当て
続いて, IAMアカウントを束ねる「グループ」を作成します. 先程, IAMアカウントに権限を割り当てることができる, という説明をしましたが, 正確に言えば権限を割り当てた「グループ」にIAMアカウントを紐付けることによって権限の割当を行います.
今回は, 「admins」というグループを作成し, そこに全ての権限を与える(「AdministratorAccess」ポリシーをアタッチする)形でグループを作っていきます.
まず, IAMコンソールの「セキュリティステータス」から, 「グループを使用してアクセス許可を割り当て」を選択し, 「グループの管理」をクリックします.
作成するグループの名称を設定できるので, 「admins」と入力し, 「次のステップ」をクリックします.
グループに割り当てるポリシー(権限)を設定します. 今回は, 全ての権限を持つ「AdministratorAccess」を割り当てるので, このチェックボックスを入れて「次のステップ」をクリックします.
「グループの作成」をクリックすれば, グループの作成は完了です.
最後に, この「admin」グループに, 先程作成したIAMアカウントを割り当てます.
左側メニューから「グループ」を選択し, 先程作成した「admins」を選択すると, 次のような画面になります. まず, 「グループにユーザを追加」をクリックします.
作成済みのAMIアカウントが選択できるので, 「admins」に所属させたいAMIアカウントを選択し, 「ユーザの追加」をクリックします.
「admins」にAMIアカウントを所属させることができました.
IAMパスワードポリシーの適用
最後に, IAMのパスワードポリシーを設定します. IAMコンソールの「セキュリティステータス」から, 「IAMパスワードポリシーの適用」を選択し, 「パスワードポリシーの管理」をクリックします.
適当なパスワードポリシーを設定し, 「パスワードポリシーの適用」をクリックします.
次のように, 「パスワードポリシーは正常に更新されました」と出力されていれば, パスワードポリシーの設定は完了です.
IAMアカウントのパスワード/MFAの設定
IAMアカウントのパスワードやMFAは, IAMアカウントの詳細ページから設定できます.
「パスワードの管理」からAMIアカウントのパスワードを, 「MFAデバイスの管理」からMFAを利用した認証の設定が可能です.
ここで設定したパスワードやMFAデバイスは, IMAコンソールに表示されている「IAMユーザのサインインリンク」からサインインする際に利用することができます.
まとめ
AWSのアカウント関連を管理するIAMの設定についてまとめました. ここで解説した設定を行えば, IAMコンソールの「セキュリティステータス」は次のようにオールグリーンになります.
個人利用/チーム利用問わず, セキュリティ周りの設定はとても重要です. 最初に説明しましたが, IAMはその中でも, 開発者(ユーザ)とその権限を管理する為の仕組みとなっています. しっかり使いこなして, 適切なセキュリティでAWSを使いこなしていきたいものですね.