何をするか?
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 ユーザーのアクセスキーでコマンド実行できるようになっているものとします。
$ aws iam create-user --user-name maku
User:
Arn: arn:aws:iam::098342099475:user/maku
CreateDate: '2021-02-07T12:20:38+00:00'
Path: /
UserId: ABS2Q6S3VUAIDAQXINMCQ
UserName: maku
$ aws iam create-access-key --user-name=maku
AccessKey:
AccessKeyId: AOXINMCQO7AASOQAKIAQ
CreateDate: '2021-02-07T12:38:11+00:00'
SecretAccessKey: MbX17I/DSInIN7dD1YOh5cE19EqG4gmblXSotFTj
Status: Active
UserName: maku
ここで、忘れずにアクセスキー (AccessKeyId
) とシークレットアクセスキー (SecretAccessKey
) を保存しておきます。
$ aws iam attach-user-policy --user-name=maku --policy-arn=arn:aws:iam::aws:policy/PowerUserAccess
これで、開発用に使用する IAM ユーザーの作成は完了です。