Amazon Web Servicesのアカウントを作成したら、真っ先にやることは、以下の記事に書く通りである。
ルートアカウントのMFAによる保護
ルートアカウントは、あらゆる操作が可能で、乗っ取られた場合にあらゆるリソースの追加・削除を許すことになる。このため、MFAによる保護は必須である。
IAM経由での請求コンソールへのアクセス有効化
これを事前に行っておかないと、IAM経由での請求コンソールへのアクセスができない。このため、有効化することにより、以後、わざわざルートアカウントでのアクセスが必要なくなるようにする。
MFAでの保護を行う管理ポリシーの追加
MFAでの管理保護を行う、IAMポリシーを定義する。このページに書いてあるポリシーを定義するとよいとされるが、このポリシー通りに定義してしまうと、初回サインイン時に自らのパスワード変更もできなくなってしまうので、Deny節のNotActionにiam:ChangePassword
とiam:GetAccountPasswordPolicy
の2つを追加してあげると、初回サインイン時のパスワード変更が問題なく通るようになる。
管理者権限のIAMグループの作成
管理者権限を持ったIAMグループの作成は必須である。これは後述するIAMユーザーの作成時に、このグループを紐づけるためである。このグループのポリシーには、管理ポリシーであるAdministratorAccessと、先ほど作成した管理ポリシーを割り当てる。
なお、AdministratorAccessは全権限許可で、先ほどのポリシーは、一部アクションを除きMFAなしでの全権限拒否である。これで大丈夫なのか?と思うかもしれないが、明示的な全権限拒否が優先されるので問題ない。
管理者権限のIAMユーザの作成
管理者権限を持ったIAMユーザを作成する。なぜIdentity Centerを用いないのかであるが、これは、ひとまずIAMユーザを作成した後に、そこ経由で設定すれば足りるためである。
IAMユーザを作成する際、先ほど作成したIAMグループを紐づける。パスワードは自動生成で、後から変更を強制する、というデフォルトのオプションで問題ない。サインインURL、ユーザ名とパスワードは必ず控えておくこと。
ここまでやったら、ルートユーザからログアウトする。以後、ルートユーザでのログインは、以下の場合以外は行わないこと。ルートユーザでなければできないことの詳細はこちらを参照せよ。
- アカウント名・メールアドレス・ルートユーザのパスワード設定
- 非推奨だが、ルートユーザのCLIのアクセスキー発行(および削除)
- 万一すべてのIAMユーザが管理不能となった場合の、権限の復活作業
- 一部の付加価値税の請求書の閲覧
- アカウントの解約・譲渡
- リザーブドインスタンスの販売者登録
- Amazon S3バケットのMFA削除の有効化(この場合のみ、ルートユーザのCLIのアクセスキー発行が正当化されるといっても過言ではない)
- Amazon SQSキューおよびAmazon S3バケットに関して、リソースポリシーで誤って全拒否に設定してしまった際の、誤ったポリシーの削除・修正
- AWS GovCloudへのサインアップ、およびルートユーザのアクセスキー請求(米国人・米国法人に限るため、日本人には関係がない)
- AWS KMSのキーが管理不能になった際の、AWSサポートセンターへの連絡による復元
管理者権限のIAMユーザの初期設定
管理者権限のIAMユーザでログインし、パスワードの設定を済ませる。その後、MFAの設定を行い、一度ログアウトする。
ここまで終わったら、再びログインし、MFA付きのログイン状態にする。
結び
ひとまず、ここまでで最低限セキュアなアカウントが完成したので、この後はIdentity Centerを作って管理するなり、IAMユーザベースで管理するなり、どのような運用をしてもかまわない。