東京リージョンに存在するプライベート VPC 内の EC2 インスタンスから IAM に関する AWS CLI コマンド操作ができない原因を教えてください

東京リージョンに存在するプライベート VPC 内の EC2 インスタンスから IAM に関する AWS CLI コマンド操作ができない原因を教えてください

Clock Icon2025.04.09

困っていること

東京リージョンに存在するインターネットへの接続経由がないプライベート VPC 内に配置した EC2 インスタンスから AWS CLI コマンドを利用して IAM リソースの操作を試みましたが、できませんでした。原因と対処法を教えてください。

どう対応すればいいの?

原因

IAM サービスのコントロールプレーンは米国東部(バージニア北部/us-east-1)リージョンにのみ存在します。
そのため、どのリージョンから IAM リソースを操作する場合でも、実際のリクエストは最終的に us-east-1 リージョンに到達する必要がございます。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/disaster-recovery-resiliency.html

IAM は非常に重要な AWS のサービス です。AWS で行うすべての操作は、IAM によって認証および認可される必要があります。IAM は各リクエストを、IAM に保存されている ID とポリシーに照らし合わせて確認し、リクエストが許可されるか拒否されるかを判断します。IAM は、コントロールプレーンとデータプレーンを分離して設計されているため、予期しない障害が発生した場合でもサービスが認証されます。ロールやポリシーなど、認可に使用される IAM リソースは、コントロールプレーンに保存されます。IAM のお客様は、DeletePolicy および AttachRolePolicy のような IAM オペレーションを使用して、これらのリソースの設定を変更できます。これらの設定変更のリクエストは、コントロールプレーンに送られます。IAM のコントロールプレーンは、すべての商用 AWS リージョン を対象とし、米国東部 (バージニア北部) リージョンに 1 つ設置されています。

対処法

米国東部(バージニア北部/us-east-1)リージョンでの実装

米国東部(バージニア北部/us-east-1)リージョンで IAM インターフェイス VPC エンドポイント(com.amazonaws.iam)の作成をすることで実現可能です。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_iam_vpc_endpoint_create.html

IAM のインターフェイス VPC エンドポイントは、IAM コントロールプレーンが存在するリージョンでのみ作成できます。商用 AWS リージョンでは、米国東部 (バージニア北部) (us-east-1) リージョンに IAM コントロールプレーンが設置されています。IAM の AWS PrivateLink インターフェイス VPC エンドポイントサービス名は com.amazonaws.iam です。

01
02
03

クロスリージョン接続

東京リージョンに設置している EC2 インスタンスより実行したい場合、AWS Transit Gateway を使用して別のリージョン内の VPC から IAM インターフェイス VPC エンドポイントにアクセスする方法や、VPC ピアリングを利用する方法がございます。一方で、管理や構築が煩雑になることをご認識ください。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_iam_vpc_endpoint_create.html

AWS Transit Gateway を使用して別のリージョン内の VPC から IAM インターフェイス VPC エンドポイントにアクセスする

補足

運用要件次第ではあるものの、インターネットへの接続経路が存在する環境からの AWS CLI コマンド実行や、CloudShell 利用もご検討ください。

参考資料

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.