Help us understand the problem. What is going on with this article?

[JAWS-UG CLI] IAM:#1 IAMの全体設定 (Account Alias、パスワードポリシー)

More than 5 years have passed since last update.

http://jawsug-cli.doorkeeper.jp/events/13796 でのハンズオン資料です。

このハンズオンでは、IAM全体の設定として下記を行ないます。

  • Account Aliasの設定 (ログイン画面のURLをわかりやすいものにする)
  • パスワードポリシーの設定

前提条件

  • IAMへのフルアクセス権限

0. 事前作業

Account Aliasに使う文字列をあらかじめ決めておきます。
(AWS利用者の間でユニークである必要があります。)

コマンド例
$ IAM_ALIAS=example01

1. 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ユーザとしてログインできます。

2. パスワードポリシーの設定

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
       }
}
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away