http://jawsug-cli.doorkeeper.jp/events/13796 でのハンズオン資料です。
このハンズオンでは、IAM全体の設定として下記を行ないます。
- Account Aliasの設定 (ログイン画面のURLをわかりやすいものにする)
- パスワードポリシーの設定
前提条件
- IAMへのフルアクセス権限
- 事前作業
===========
Account Aliasに使う文字列をあらかじめ決めておきます。
(AWS利用者の間でユニークである必要があります。)
コマンド例
$ IAM_ALIAS=example01
- Account Aliasの設定
=======================
IAMユーザでのログインは、デフォルトでは https://XXXXXXXXXXXX.signin.aws.amazon.com/console になっています。
(XXXXXXXXXXXX: AWSアカウントID)
任意の文字列(Account Alias)に置き換えて、URLを覚えやすいものに変更することができます。
1.1. Account Aliasの作成
コマンド
$ aws iam create-account-alias --account-alias ${IAM_ALIAS}
結果
(戻り値なし)
1.2. Account Aliasの確認
コマンド
$ aws iam list-account-aliases
結果(例)
{
"AccountAliases": [
"example01"
]
}
コマンド
$ IAM_URL="https://${IAM_ALIAS}.signin.aws.amazon.com/console"
$ echo ${IAM_URL}
結果(例)
https://example01.signin.aws.amazon.com/console
このURLにアクセスすることで、IAMユーザとしてログインできます。
- パスワードポリシーの設定
==========================
IAMユーザについて、パスワード文字列の文字種、パスワードの有効期間などのポリシーを設定することができます。
なお、一部のポリシー項目だけを変更すると、他のポリシー項目はデフォルト値に戻るようなのでご注意ください。[AWS CLI 1.4.2]
2.1. 事前確認 (初期値)
パスワードポリシーがまだ設定されていないことを確認します。
command
$ aws iam get-account-password-policy
result
A client error (NoSuchEntity) occurred when calling the GetAccountPasswordPolicy operation: The Password Policy with domain name XXXXXXXXXXXX cannot be found.
2.2a. パスワードポリシーの設定 (文字種のみの場合)
command
$ IAM_PASSWORD_LENGTH=9
コマンド
$ aws iam update-account-password-policy --minimum-password-length ${IAM_PASSWORD_LENGTH} --require-symbols --require-numbers --require-uppercase-characters --require-lowercase-characters --allow-users-to-change-password
result
(戻り値なし)
確認
command
$ aws iam get-account-password-policy
結果(例)
{
"PasswordPolicy": {
"AllowUsersToChangePassword": true,
"RequireLowercaseCharacters": true,
"RequireUppercaseCharacters": true,
"MinimumPasswordLength": 9,
"RequireNumbers": true,
"RequireSymbols": true,
"ExpirePasswords": false
}
}
2.2b. パスワードポリシーの設定 (文字種+有効期間の場合)
p.env
IAM_PASSWORD_LENGTH=9
IAM_PASSWORD_AGE=90
IAM_PASSWORD_REUSE=2
command
$ source p.env
command
$ aws iam update-account-password-policy --minimum-password-length ${IAM_PASSWORD_LENGTH} --require-symbols --require-numbers --require-uppercase-characters --require-lowercase-characters --allow-users-to-change-password --max-password-age ${IAM_PASSWORD_AGE} --password-reuse-prevention ${IAM_PASSWORD_REUSE} --hard-expiry
result
(戻り値なし)
確認
command
$ aws iam get-account-password-policy
結果(例)
{
"PasswordPolicy": {
"AllowUsersToChangePassword": true,
"RequireLowercaseCharacters": true,
"RequireUppercaseCharacters": true,
"MinimumPasswordLength": 9,
"RequireNumbers": true,
"PasswordReusePrevention": 2,
"HardExpiry": true,
"RequireSymbols": true,
"MaxPasswordAge": 90,
"ExpirePasswords": false
}
}
参考: アカウントサマリの表示
コマンド
$ aws iam get-account-summary
結果(例)
{
"SummaryMap": {
"AccessKeysPerUserQuota": 2,
"AssumeRolePolicySizeQuota": 2048,
"UsersQuota": 5000,
"GroupsPerUserQuota": 10,
"Users": 4,
"Roles": 1,
"Providers": 0,
"InstanceProfilesQuota": 100,
"AccountMFAEnabled": 0,
"ServerCertificates": 0,
"UserPolicySizeQuota": 2048,
"RolePolicySizeQuota": 10240,
"MFADevicesInUse": 0,
"GroupsQuota": 100,
"Groups": 2,
"InstanceProfiles": 1,
"GroupPolicySizeQuota": 5120,
"SigningCertificatesPerUserQuota": 2,
"ServerCertificatesQuota": 20,
"MFADevices": 0,
"RolesQuota": 250
}
}