AWS Identity and Access Management での耐障害性 - AWS Identity and Access Management

AWS Identity and Access Management での耐障害性

AWS のグローバルインフラストラクチャは AWS リージョンとアベイラビリティーゾーンを中心に構築されます。AWSリージョンは物理的に分離、隔離された複数の可用性ゾーンを持ち、それらは低レイテンシー、高スループット、高冗長のネットワークで接続されています。AWS リージョンとアベイラビリティーゾーンの詳細については、AWS グローバルインフラストラクチャを参照してください。

AWS Identity and Access Management (IAM) および AWS Security Token Service (AWS STS) は、自立したリージョンベースのサービスで、全世界で利用可能です。

IAM は非常に重要な AWS サービス です。AWS で行うすべての操作は、IAM によって認証および認可される必要があります。IAM は各リクエストを、IAM に保存されている ID とポリシーに照らし合わせて確認し、リクエストが許可されるか拒否されるかを判断します。IAM は、コントロールプレーンとデータプレーンを分離して設計されているため、予期しない障害が発生した場合でもサービスが認証されます。ロールやポリシーなど、認可に使用される IAM リソースは、コントロールプレーンに保存されます。IAM のお客様は、DeletePolicy および AttachRolePolicy のような IAM オペレーションを使用して、これらのリソースの設定を変更できます。これらの設定変更のリクエストは、コントロールプレーンに送られます。IAM のコントロールプレーンは、すべての商用 AWS リージョン を対象とし、米国東部 (バージニア北部) リージョンに 1 つ設置されています。次に、IAM システムは、有効化されたすべての AWS リージョン の IAM データプレーンに設定変更を伝達します。IAM データプレーンは、基本的に IAM コントロールプレーンの設定データの読み取り専用レプリカです。各 AWS リージョン には、IAM データプレーンの完全に独立したインスタンスがあり、同じリージョンからのリクエストに対して認証と認可を実行します。各リージョンでは、IAM データプレーンは少なくとも 3 つのアベイラビリティーゾーンに分散されており、アベイラビリティーゾーンの損失を許容する十分な容量があり、顧客に障害を与えることはありません。IAM のコントロールプレーンとデータプレーンの両方が、ダウンタイムゼロを目指して構築され、すべてのソフトウェア更新とスケーリング操作が、顧客には見えない方法で実行されます。

AWS STS リクエストはデフォルトで単一のグローバルエンドポイントに送信されます。リージョナル AWS STS エンドポイントを使用して、レイテンシーを削減したり、アプリケーションの冗長性を高めたりすることができます。詳細については、「AWS リージョン での AWS STS の管理」を参照してください。

特定のイベントにより、ネットワークを介した AWS リージョン 間の通信が中断されることがあります。しかし、グローバル IAM エンドポイントと通信できない場合でも、AWS STS は引き続き IAM プリンシパルを認証でき、IAM はリクエストを承認できます。通信を中断するイベントの具体的な詳細によって、AWS サービスにアクセスできるかどうかが決まります。ほとんどの場合、ご使用の AWS 環境で IAM 認証情報を使用し続けることができます。通信を中断させるイベントには、次のような条件が当てはまる場合があります。

IAM ユーザーのアクセスキー

長期アクセスキーを持つ IAM ユーザーに対して、リージョン内で無期限認証が可能です。AWS Command Line Interface および API を使用する場合、AWS アクセスキーを提供することで、AWS がプログラム上のリクエストで ID を確認することができます。

重要

ベストプラクティスとして、長期的なアクセスキーではなく、一時的な認証情報でサインインすることをお勧めします。

一時的な認証情報

AWS STS リージョン別サービスエンドポイントでは、少なくとも 24 時間、新しい一時的な認証情報を要求することができます。以下の API オペレーションにより、一時的な認証情報が生成されます。

  • AssumeRole

  • AssumeRoleWithWebIdentity

  • AssumeRoleWithSAML

  • GetFederationToken

  • GetSessionToken

プリンシパルおよびアクセス許可
  • IAM では、プリンシパルまたは アクセス許可の追加、変更、削除ができない場合があります。

  • 認証情報には、最近 IAM で適用したアクセス許可の変更が反映されていない可能性があります。詳細については、「行った変更がすぐに表示されないことがある」を参照してください。

AWS Management Console
  • IAM ユーザーとして AWS Management Console にサインインするために、リージョナルのサインインエンドポイントを使用できるかもしれません。リージョンのサインインエンドポイントの URL 形式は以下の通りです。

    https://{Account ID}.signin.aws.amazon.com/console?region={Region}

    例: https://111122223333.signin.aws.amazon.com/console?region=us-west-2

  • ユニバーサル第 2 ファクター (U2F) 多要素認証 (MFA) が完了しない場合があります。

IAM レジリエンスのためのベストプラクティス

AWS は、AWS リージョン およびアベイラビリティゾーンにレジリエンスを組み込んでいます。お客様の環境と相互作用するシステムにおいて、以下の IAM ベストプラクティスを遵守することで、そのレジリエンスを活用することができるのです。

  1. デフォルトのグローバルエンドポイントではなく、AWS STS リージョン別サービスエンドポイントを使用します。

  2. IAM リソースを日常的に作成または変更する重要なリソースの環境設定を確認し、既存の IAM リソースを使用するフォールバックソリューションを準備します。