Identity & Access Management 略してIAMはAWSコンソールにアクセスするユーザのアカウント管理するサービス。 IAMを一番最初に勉強していきます。どうして一番最初に勉強するかと言うと、 AWSのサービスを使うにはアカウントを作成しすぐにEC2やS3を使いはじめることができますが、 デフォルトのルートアカウントで作業をしているとそのアカウント情報が流出してしまうと、 リソースを使い放題され自分に支払いが回ってきますので、まずはIAMでルート以外のアカウントを作成し作業をすることを勧めます。
###主な機能
- AWSアカウントの一元管理
- 既存のActivie Directoryと統合しSSO(Single Sign On)を提供
- AWSリソースへのきめ細かなアクセス権管理
- ユーザ/グループ/ロールでのアクセス管理を提供
- 2要素認証を提供
- ユーザへのテンポラリーアクセス権の提供
- パスワードポリシーの設定
###概要
####IAM ユーザ AWSコンソールへのアクセスに使用することができます。 AWSの1アカウントにつき5000ユーザまで作成が可能です。 最大で10のグループまで所属可能。
####グループ AWSの1アカウントにつき100まで作成可能。 作成したユーザを所属させ、グループごとにパーミッションを付与させることができる。
####ロール グループと似ているけれども、AWSのサービスからサービスへのパーミッションを設定可能。 例えばEC2からS3へアクセスを許可する場合などに使用することで、IAMユーザのクレデンシャルをOSやアプリケーションに持たせる必要がないため、 アカウント情報の漏えいリスクが軽減できる。
###ハンズオン
サービス一覧からSecurity & Identity カテゴリにあるIdentity& Access Management を選択する。 Dashboard画面がひらき、IAM ResourcesやSecurity Statusが確認できる。 一番上にあるIAM users sign-in linkは、自分のAWSコンソールにIAMユーザがアクセスする際のURLになる。 デフォルトのアドレスはランダムなものなので、Customizeからエイリアス名を設定できわかりやすいアドレスに変更ができる。
ダッシュボード下にはSecurity Status画面が表示されている。はじめはStatusがDelete your Root access Keys以外はオレンジになっている。 RootKeyはデフォルトで新規アカウントは削除されるので緑色。 その他4つを実施することを進められる。 以下4つのレコメンデーション
- RootアカウントでのMulti Factor Authenticationを有効化(Rootは2段階認証を実施し他人がRootアカウントでログイン出来ないようにする)
- 個別のIAM ユーザアカウントの作成。(Rootでの作業はしない)
- グループを作成して権限を付与する。
- IAMアカウントへのパスワードポリシーの有効化
####MFA設定 一番最初はルートアカウントにMFAを使用するようにする。 ダッシュボードの二番目をクリックして設定をすすめる。 Virtual MFA Device(アプリベース)かHardware MFA Device (USBキーなど)を使用するか選ぶ。 ここではスマートフォンにアプリをインストールしてMFAができるようにしたいので、Virtual MFA Deviceを選択する。AWSと自分のアプリをシンクする前に、MFA用アプリをインストールして準備しておくようにメッセージがでるので、アプリの準備をしておく。 QRコードが画面にでるので、MFAアプリを起動しスキャナで読み取る。 ワンタイムPINが表示されたら、2回続けてCode1とCode2に入力しActivate Virtual MFAをクリックする。 サクセスできたら設定完了。
####IAMユーザ作成 UsersからCreate New Usersをクリックし作成 作成したらSecurity Credentialsが表示されダウンロードすることができる。 この画面を閉じるとこのキーを再度表示されることはできなくなるので、必ずダウンロードする。なくしてしまった際は、一度削除して再度作成する必要がある。 作成直後は管理コンソールにログインできない。ユーザにパスワードを設定してあげる必要がある。
####グループ作成 パスワードを設定しログオンできるようになっても何もできない。それはパーミッションが設定されていないから。 IAMユーザ単位でパーミッションを設定できるが管理が煩雑になるので、グループを作成しそのグループにパーミッションを与える。個別のIAMアカウントは必要に応じてグループにアサインする。 Groups からCreate New Groupで作成ができる。 Group Nameを入力しあらかじめ作成されているAWS Managed Policy から適切なものを選択する。 最大で10ポリシーまで選択できる。 カスタムセキュリティポリシーを設定したい場合には、Policiesからカスタムポリシーを作成可能。 設定する際はJSON形式で記載する。
####Password Policy Password PolicyメニューはAccount Settingsに名前が変更になったが、 中身はPassword Policyのまま、AWSコンソールにアクセスする際のパスワードの長さ、複雑性、有効期限などを設定できる。 同じパスワードの使い回しを避けるためにも有効期限や、過去の数回のパスワードを設定できないようにするべき。
####ロール作成
RolesからCreate New Roleで作成開始。Role Nameを入力しRole Typeを選択、
Role TypeはAWS Service, Cross-Account AccessとIdentity Provider Accessの三種類がある。
AWSサービスの権限を設定したい場合は、AWS Service RolesからAWSサービスを選択する。
Amazon EC2を選択するとEC2からどのAWSサービスへパーミッションを設定したいかAWS Managed Policy一覧が表示され選ぶことができる。
以上、AWSを使い始めるにあたり必要最低限のところを勉強して見ました。
カスタムのセキュリティポリシーはJSON形式で設定できるのですが、テストの範囲ではなさそうなので、ここでは踏み込まないことにしました。
IAMの機能でActive Directoryと連携して、SSOを構成できるので、次はその仕組みを勉強する予定です。