何をするか?
AWS のベストプラクティスでは、管理者であっても普段の作業では AWS アカウントのルートユーザーを直接使うべきではないとされています。
そこで、まずは管理者の普段の作業用に IAM ユーザーを作成します。 この作成作業は、AWS アカウントのルートユーザーで行う必要があります(初期状態ではユーザー作成の権限がルートユーザーにしかないため)。
ここでは、下記のような名前の IAM ユーザーとグループを作成することにします。
- IAM ユーザー:
admin
- IAM グループ:
Admins
… (AdministratorAccess
ポリシーを割り当てます)
管理者用 IAM ユーザーの作成
AWS IAM コンソール にサインインし、次のような感じで IAM ユーザーを作成します。
アクセス管理
→ユーザー
→ユーザーを追加
を選択し、次のように入力- ユーザー名:
admin
- アクセスの種類: CLI などで操作するなら
プログラムによるアクセス
にチェック
- ユーザー名:
ユーザーをグループに追加
→グループの作成
を選択し、次のように入力- グループ名:
Admins
- ポリシー:
AdministratorAccess
を選択
- グループ名:
アクセスキーや、シークレットアクセスキーを作成したのであれば、このタイミングで表示されるので、なくさないよう厳重に保存します(後から確認することはできません)。
これで、管理者用の普段の作業も、ルートユーザーではなく、admin
という IAM ユーザーで行えるようになります。
(応用)開発者用の IAM ユーザーの作成
上記では管理者用の IAM ユーザーを作成しましたが、それ以外の IAM ユーザー(開発者用など)も同様に作成することができます。
AWS は開発者用の IAM ポリシーをいくつか定義しています。
AdministratorAccess
ポリシーとの大きな違いは、IAM 関連の操作(つまりユーザー管理)をするための権限を持っていないことです。
- 職務機能の AWS 管理ポリシー
- データベース管理者 : DatabaseAdministrator
- データサイエンティスト : DataScientist
- 開発者パワーユーザー : PowerUserAccess
- ネットワーク管理者 : NetworkAdministrator
- セキュリティ監査人 : SecurityAudit
- サポートユーザー : SupportUser
- システム管理者 : SystemAdministrator
- 閲覧専用ユーザー : ViewOnlyAccess
ここでは、AWS CLI を使って、コマンドラインからユーザーの作成と、PowerUserAccess
ポリシーの割り当てをしてみます。
事前準備として、AWS CLI の初期設定 は完了しており、AdministratorAccess
ポリシーの付いた IAM ユーザーのアクセスキーでコマンド実行できるようになっているものとします。
ここで、忘れずにアクセスキー (AccessKeyId
) とシークレットアクセスキー (SecretAccessKey
) を保存しておきます。
これで、開発用に使用する IAM ユーザーの作成は完了です。