この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
不定期と言いながら連投しまくりで申し訳ありませんw m(_ _)m (書き溜めていたものでもあったので、このタイミングで一挙放出しとります)
IAM編第4弾はアカウントやパスワード、アクセスキーに関するコマンドです。
アカウントエイリアス(acount-alias)に関する操作
管理コンソール上で言うと、ちょうとこの部分の別名(エイリアス)を生成するコマンドになります。利用開始直後は数字の羅列となっているこの部分を、分かり易い別名にする操作ですね。
create-account-alias
アカウントエイリアスを作成します。実行してみましょう。
$ aws iam create-account-alias --account-alias aws-alias-login
実行後管理コンソールで内容を確認してみます。更新されていますね。
list-account-aliases
AWSアカウントに紐付くエイリアスの一覧を取得します。
$ aws iam list-account-aliases
[
"aws-alias-login"
]
delete-account-alias
アカウントエイリアス情報を削除します。この操作を行うと、create-account-aliasを行う前の状態に戻る形となります。
$ aws iam delete-account-alias --account-alias aws-alias-login
アカウントサマリ(acount-summary)に関する操作
get-account-summary
アカウントエンティティに関する利用状況とIAMに関する各種情報の設定可能件数を取得します。各種項目値に関しては下記APIリファレンスを参照。
$ aws iam get-account-summary
{
"SummaryMap": {
"AccessKeysPerUserQuota": 2,
"AssumeRolePolicySizeQuota": 2048,
"UsersQuota": 5000,
"GroupsPerUserQuota": 10,
"Users": 8,
"Roles": 4,
"MFADevices": 0,
"InstanceProfilesQuota": 100,
"AccountMFAEnabled": 0,
"ServerCertificates": 0,
"UserPolicySizeQuota": 2048,
"RolePolicySizeQuota": 10240,
"MFADevicesInUse": 0,
"GroupsQuota": 100,
"Groups": 8,
"InstanceProfiles": 5,
"GroupPolicySizeQuota": 5120,
"SigningCertificatesPerUserQuota": 2,
"ServerCertificatesQuota": 10,
"RolesQuota": 250
},
"ResponseMetadata": {
"RequestId": "a4a0d146-e53b-11e2-a0fa-2ba949bc0794"
}
}
パスワード(password)に関する操作
change-password
これを実行する事で"IAMユーザー"のパスワードを変更します。ルートアカウントパスワードはこのアクションによって影響を受ける事はありません。
...とコマンドヘルプを読む限り書いてあるのですが、所定のIAMユーザーを示すオプションが無いっぽい?
$ aws iam change-password --
--color --endpoint-url --no-paginate --old-password --profile --version
--debug --new-password --no-verify-ssl --output --region
用法的には以下のような感じになるのでしょうが、動作検証はしておりませんw
$ aws iam change-password --old-password xxxxxx --new-password yyyyyy
パスワードポリシー(password-policy)に関する操作
管理コンソール:IAMのダッシュボードから[Security Status]欄にある[Password Policy]の編集画面に進むことで変更出来る要素群です。パスワードを作成する時に定める生成ルールを取り扱います。
get-account-password-policy
現在のアカウントパスワードポリシー情報を取得します。
$ aws iam get-account-password-policy
{
"ResponseMetadata": {
"RequestId": "32b198c9-e545-11e2-ba36-0f251103ce0b"
},
"PasswordPolicy": {
"RequireNumbers": false,
"RequireLowercaseCharacters": false,
"RequireUppercaseCharacters": false,
"MinimumPasswordLength": 6,
"AllowUsersToChangePassword": false,
"RequireSymbols": false
}
}
update-account-password-policy
IAM パスワードポリシーの管理 - AWS Identity and Access Management
パスワードポリシーに関する設定項目を単一、または復数に更新可能なこのコマンド、書式は以下のような感じになっております。また『minimum-password-length』以外は真偽値(boolean)を渡すようにあるのですが...
$ aws iam update-account-password-policy \n
--allow-users-to-change-password "true" \n
--require-lowercase-characters "true" \n
--require-uppercase-characters "true" \n
--minimum-password-length 10 \n
--require-numbers "true"
--require-symbols "true"
該当しそうな値は軒並み『そんなオプション知らんがな』と言われてしまいます...(´・ω・)
$ aws iam update-account-password-policy --require-uppercase-characters true
Unknown options: ['true']
$ aws iam update-account-password-policy --require-uppercase-characters TRUE
Unknown options: ['TRUE']
$ aws iam update-account-password-policy --require-uppercase-characters 'true'
Unknown options: ['true']
$ aws iam update-account-password-policy --require-uppercase-characters 'TRUE'
Unknown options: ['TRUE']
$ aws iam update-account-password-policy --require-uppercase-characters yes
Unknown options: ['yes']
$ aws iam update-account-password-policy --require-uppercase-characters 1
Unknown options: ['1']
$ aws iam update-account-password-policy --require-uppercase-characters "1"
Unknown options: ['1']
$ aws iam update-account-password-policy --require-uppercase-characters True
Unknown options: ['True']
5ヶ月前のこのissueでは対応した、となっている模様。
と思ったら最近また似たような事象でissueにて言及している人が。(およそ6月末頃?)
boolean値に関する問題については、しばらく前に対応したけど、直ってないとかいうステータスなのでしょうかねぇ...
delete-account-password-policy
アカウントパスワードポリシーを削除します。
上記更新系のメソッドが動かない?ので、まずは管理コンソールで値を設定してみるところから。
そして削除。こちらの要素も、削除を行うと設定前の状態(デフォルト初期値)に戻るようです。
$ aws iam delete-account-password-policy
アクセスキー(access-key)に関する操作
create-access-key
所定ユーザーのアクセスキーを作成します。
$ aws iam create-user --user-name iam-ack-user
$ aws iam create-access-key --user-name iam-ack-user
{
"AccessKey": {
"UserName": "iam-ack-user",
"Status": "Active",
"CreateDate": "2013-07-05T13:05:51.141Z",
"SecretAccessKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"AccessKeyId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
"ResponseMetadata": {
"RequestId": "9dfadfe3-e573-11e2-8a03-a9df50e5b4b7"
}
}
list-access-keys
特定ユーザーに関連したアクセスキーIDの情報を返します。
--user-name パラメータを指定していない場合は実行時のアカウントに紐付くキー情報、--user-name パラメータを指定した場合はその指定ユーザのキー情報を返すようです。
$ aws iam list-access-keys --user-name iam-ack-user
[
{
"UserName": "iam-ack-user",
"Status": "Active",
"CreateDate": "2013-07-05T13:05:51Z",
"AccessKeyId": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
]
update-access-key
特定アクセスキーのステータスをActiveからInactiveへ、またはその逆へ変更します。このアクションはアクセスキーのローテーション活動の一環として行われる事を想定しているようです。
$ aws iam update-access-key --user-name iam-ack-user --access-key-id XXXXXXXXXXXXXXXXX --status Inactive
$ aws iam list-access-keys --user-name iam-ack-user | jq '.[].UserName, .[].Status, .[].AccessKeyId'
"iam-ack-user"
"Inactive"
"XXXXXXXXXXXXXXXXX"
$ aws iam update-access-key --user-name iam-ack-user --access-key-id XXXXXXXXXXXXXXXXX --status Active
$ aws iam list-access-keys --user-name iam-ack-user | jq '.[].UserName, .[].Status, .[].AccessKeyId'e
"iam-ack-user"
"Active"
"XXXXXXXXXXXXXXXXX"
delete-access-key
所定のアクセスキーを削除します。
$ aws iam delete-access-key --user-name iam-ack-user --access-key-id XXXXXXXXXXXXXXXXX
$ aws iam list-access-keys --user-name iam-ack-user | jq length
0