何をするか?
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 ユーザーの作成は完了です。