前提条件
IAMへの権限
IAMに対してフル権限があること。
AWS CLIのバージョン
以下のバージョンで動作確認済
- AWS CLI 1.10.4
コマンド
aws --version
結果(例)
aws-cli/1.10.4 Python/2.7.5 Darwin/13.4.0 botocore/1.3.26
0. 準備
変数の確認
プロファイルが想定のものになっていることを確認します。
変数の確認
aws configure list
結果(例)
Name Value Type Location
---- ----- ---- --------
profile iamFull-prjZ-mbp13iamFull-prjZ-mbp13 env AWS_DEFAULT_PROFILE
access_key ****************XXXX shared-credentials-file
secret_key ****************XXXX shared-credentials-file
region eu-west-1 env AWS_DEFAULT_REGION
1. 事前作業
IAMユーザ名の決定
変数の指定
IAM_USER_NAME='taro'
2. IAMユーザの作成
2.1. ユーザの作成
変数の確認
cat << ETX
IAM_USER_NAME: ${IAM_USER_NAME}
ETX
コマンド
aws iam create-user \
--user-name ${IAM_USER_NAME}
結果(例)
{
"User": {
"UserName": "taro",
"Path": "/",
"CreateDate": "2014-09-07T11:01:01.687Z",
"UserId": "AIDAJMUDSVOxxxxxxxxxx",
"Arn": "arn:aws:iam::XXXXXXXXXXXX:user/taro"
}
}
2.2. IAMユーザの一覧
IAMユーザの一覧にtaroユーザが存在することを確認します。
コマンド
aws iam list-users
結果(抜粋例)
{
"Users": [
{
"UserName": "taro",
"Path": "/",
"CreateDate": "2014-09-07T11:01:01Z",
"UserId": "AIDAJMUDSVOxxxxxxxxxx",
"Arn": "arn:aws:iam::XXXXXXXXXXXX:user/taro"
}
]
}
2.3. IAMユーザの詳細確認
get系コマンドでは、その対象の詳細情報を確認することができます。
コマンド
aws iam get-user \
--user-name ${IAM_USER_NAME}
結果(例)
{
"User": {
"UserName": "taro",
"Path": "/",
"CreateDate": "2014-09-07T11:01:01Z",
"UserId": "AIDAJMUDSVOxxxxxxxxxx",
"Arn": "arn:aws:iam::XXXXXXXXXXXX:user/taro"
}
}
3. IAMユーザのパスワード設定
作成したIAMユーザがマネジメントコンソールからアクセスする場合は、IAMユーザのパスワード設定が必要です。
(AWS APIしか利用しない場合は、この作業は不要です。パスワード設定をしないことで、マネジメントコンソールからのログインを防止することができます。)
3.1. IAMユーザのパスワード設定
taroユーザのパスワードを設定します。
コマンド
IAM_PASSWORD_NEW='#userPass123'
変数の確認
cat << ETX
IAM_USER_NAME: ${IAM_USER_NAME}
IAM_PASSWORD_NEW: ${IAM_PASSWORD_NEW}
ETX
コマンド
aws iam create-login-profile \
--user-name ${IAM_USER_NAME} \
--password ${IAM_PASSWORD_NEW}
結果(例)
{
"LoginProfile": {
"UserName": "taro",
"CreateDate": "2014-09-07T12:01:53.109Z",
"PasswordResetRequired": false
}
}
3.2. IAMユーザのパスワード設定状況確認
get系コマンドでは、その対象の詳細情報を確認することができます。
コマンド
aws iam get-login-profile \
--user-name ${IAM_USER_NAME}
結果(例)
{
"LoginProfile": {
"UserName": "taro",
"CreateDate": "2014-09-07T12:01:53Z",
"PasswordResetRequired": false
}
}
4. IAMユーザのIAMグループへの追加
IAMユーザは、初期状態でどのIAMグループにも属していません。
(何の権限も持ちません。)
IAMグループと同様に、IAMユーザにもポリシーを設定することが可能ですが、管理をシンプルにするために、ユーザポリシーは極力使わず、適切なIAMグループに所属させるようにしましょう。
ここでは、taroユーザをAdministratorグループに所属させます。
4.1. IAMユーザがどのIAMグループにも所属していないこと(初期値)を表示
まず、taroユーザがどのIAMグループにも所属していないことを確認します。
コマンド
aws iam list-groups-for-user \
--user-name ${IAM_USER_NAME}
結果(例)
{
"Groups": []
}
4.2. IAMユーザのIAMグループへの追加
taroユーザをAdministratorグループに所属させます。
変数の確認
cat << ETX
IAM_GROUP_NAME: ${IAM_GROUP_NAME}
IAM_USER_NAME: ${IAM_USER_NAME}
ETX
コマンド
aws iam add-user-to-group \
--group-name ${IAM_GROUP_NAME} \
--user-name ${IAM_USER_NAME}
結果
(戻り値なし)
4.3. IAMユーザの所属するIAMグループを表示
taroユーザが所属するIAMグループの一覧を表示してみましょう。
コマンド
aws iam list-groups-for-user \
--user-name ${IAM_USER_NAME}
結果(例)
{
"Groups": [
{
"Path": "/",
"CreateDate": "2014-09-07T08:52:09Z",
"GroupId": "AGPAI5KIHK7xxxxxxxxxx",
"Arn": "arn:aws:iam::XXXXXXXXXXXX:group/Administrator",
"GroupName": "Administrator"
}
]
}
完了
以上で、IAMユーザの作成と、IAMグループへの登録は完了です。