Service Quotas から IAM 上限管理が可能になりました!

2020.06.26

園部です。

Service Quotas で IAM 上限管理が可能となりました!

要注意なのは、バージニア北部リージョンから申請を行う必要がある点です。

You can manage your IAM quotas in the US East (N. Virginia) region, when using AWS Service Quotas.

引用:Manage your AWS Identity and Access Management quotas with AWS Service Quotas

AWS ではリージョンに紐づかないグローバルなサービスがあります。 IAM もその一つのため、特定リージョン(バージニア北部)から申請を行う必要があるようです。CloudWatch のメトリクスなども同様にバージニア北部に集約されていますね。

サポートケースから上限緩和申請する際には、サポートセンター自体はグローバルでありリージョンを意識してアクセスする必要もありませんし、申請を行うサービスでリージョン指定が必要な場合は項目が表示されますし、不要な場合は表示されないので画面に沿って行うことで意識する必要はありません。

やってみた

東京リージョンには IAM がない

東京リージョンに切り替え

IAM を検索しても存在しません

バージニア北部リージョンから申請

バージニア北部リージョンに切り替え

今後は IAM が表示されます。

利用可能な項目一覧は以下の通りです。

$ aws service-quotas list-service-quotas --service-code iam --region us-east-1 --query Quotas[*].QuotaName
[
    "ACL size per role",
    "Access keys per user",
    "Customer managed policies per account",
    "Domains per account",
    "Groups per account",
    "IAM groups per user",
    "Identity providers per IAM SAML provider object",
    "Instance profiles per account",
    "Keys per SAML provider",
    "MFA devices per user",
    "Managed policies per group",
    "Managed policies per role",
    "Managed policies per user",
    "Managed policy length",
    "OpenId connect providers per account",
    "Roles per account",
    "SAML providers per account",
    "SSH Public keys per user",
    "Server certificates per account",
    "Signing certificates per user",
    "Tags per role",
    "Tags per user",
    "Users per account",
    "Versions per managed policy"
]

以下のように IAM の一つの項目に対して Service Quotas から上限緩和申請を行います。

承認され、緩和されました。(Service Quotas 早い!

おまけ

リージョンによる申請可能なサービスの差異

東京リージョンとバージニア北部リージョンでは差異があります。
CLI の aws service-quotas list-services を利用してそれぞれのリージョンのサービスを比較すると以下のような結果になりました。

$ diff ap.txt us.txt
18a19,22
> |  ce                       |
> |  chatbot                  |
> |  chime                    |
> |  cloud9                   |
25a30
> |  codeguru-profiler        |
30a36,37
> |  comprehend               |
> |  compute-optimizer        |
33a41,42
> |  deepracer                |
> |  directconnect            |
34a44
> |  docdb                    |
51a62
> |  frauddetector            |
56a68
> |  iam                      |
60a73,74
> |  iotevents                |
> |  iotsitewise              |
61a76
> |  kendra                   |
69a85
> |  macie                    |
76a93
> |  networkmanager           |
78a96
> |  organizations            |
86a105
> |  route53                  |
105a125
> |  waf                      |

kendra のようなリージョンによって提供されているサービスが異なるため、実際に利用するリージョンから Service Quotas では申請する必要があります。 (誤ったリージョンでサービス対応状況を確認して、Service Quotas 未対応なのかと誤認してしまわないように注意しましょう)

iam や route53 といったグローバルなサービスは表示がされるリージョン(主にバージニア北部)から申請する必要があります。

グローバルクォータ

今回 IAM の Service Quotas 画面を見ている際に グローバル というマークが表示されているものを発見しました。

こちらについては、英語のみですがドキュメントで記載されています。

Global Quota

A global quota is a quota, or limit, applied at an account level. Global quotas are available in all Regions. You can request an increase to a global quota from any Region, and can track the status of the increase from the Region where the increase was requested. If a quota increase, for a global quota, has been requested, you can't request an increase for the same quota from a different Region until the first request has completed. Once the initial request has completed, the applied quota value will be visible across all Regions (if applied quotas are available).

引用:Key Terms and Concepts in Service Quotas

↓↓↓ (機械翻訳) ↓↓↓

グローバルクォータ

グローバルクォータとは、アカウントレベルで適用されるクォータまたは制限のことです。 グローバルクォータはすべてのリージョンで利用できます。 どのリージョンからでもグローバルクォータの増額を申請することができ、増額を申請したリージョンから増額の状況を確認することができます。 グローバルクォータの増額申請を行った場合、最初の申請が完了するまでは、別のリージョンから同じクォータの増額申請を行うことはできません。 最初のリクエストが完了すると、適用されたクォータの値はすべてのリージョンで表示されます(適用されたクォータがある場合)。

冒頭からの流れから読むと ??? という印象です。。 アカウントレベルで適用される項目であれば、どのリージョンからでも変更が行える。ただし排他制御のような形で、申請中は同一の申請は行えないと理解しました。先の画像は IAM の項目によるものなのですが、バージニア北部リージョンにしかサービスが存在していませんし、初回リクエスト後も東京リージョンには表示されていません。

おそらく グローバルサービス(IAM や Route53)とは異なっており、リージョンナルサービスの中で、アカウント単位で適用されるような項目の場合(上記の 「 if applied quotas are available 」 )に適用される動作ではないかと推測されます。。英語わからん(そういう問題ではない??

さいごに

Service Quotas は適切に利用すると、とても迅速に緩和申請対応がなされます。(過度な緩和や申請内容に誤りがあるといったケースでは相応のやりとりが必要となります) これからも対応サービスが増え続けて欲しいですね。また緩和申請以外にも CloudWatch と連携してアラートを設定することも可能です。(一部サービスに限る)

リソースを作成しようと決意したのに、上限にかかり作成出来ない...という悲劇に出会わないよう定期的なチェックやアラートを活用して、上手にコントロールしていきましょう!