AWS リージョンでの AWS STS の管理 - AWS Identity and Access Management

AWS リージョンでの AWS STS の管理

デフォルトでは、AWS Security Token Service (AWS STS) は、グローバルなサービスと使用することができ、AWS STS リクエストはすべて、https://sts.amazonaws.com の単一エンドポイントに送信されます。AWS では、レイテンシーの低減、冗長性の構築、セッショントークンの有効性の強化のために、グローバルエンドポイントではなく、リージョンの AWS STS エンドポイントを使用することを推奨しています。

  • レイテンシーの低減 – お客様のサービスやアプリケーションに地理的に近いエンドポイントに対して AWS STS の呼び出しを実行することにより、より低いレイテンシーとより高速な応答時間で AWS STS サービスにアクセスできます。

  • 冗長性の構築 – AWS STS API 呼び出しを他のリージョンに切り替えるアプリケーションにコードを追加できます。これにより、最初のリージョンが応答を停止した場合、アプリケーションは動作を続けます。この冗長性は自動的に得られるものではなく、その機能をコードに組み込む必要があります。

  • セッショントークンの有効性を向上する – リージョンの AWS STS エンドポイントからのセッショントークンはすべての AWS リージョンで有効です。グローバル STS エンドポイントからのセッショントークンは、デフォルトで有効になっている AWS リージョンでのみ有効です。アカウントで新しいリージョンを有効にする場合、リージョン別 STS エンドポイントからのセッショントークンを使用できます。グローバルエンドポイントの使用を選択した場合、グローバルエンドポイントに対する STS セッショントークンのリージョンの互換性を変更する必要があります。これにより、トークンはすべての AWS リージョンで有効になります。

グローバルエンドポイントセッショントークンの管理

ほとんどの AWS リージョンはデフォルトですべての AWS のサービスのオペレーションに有効になっています。これらのリージョンは、AWS STS で使用できるように自動的にアクティブ化されます。アジアパシフィック (香港) など一部のリージョンは、手動で有効にする必要があります。AWS リージョンの有効化と無効化の詳細については、AWS General Referenceの「AWS リージョンの管理」を参照してください。これらの AWS リージョンを有効にすると、AWS STS で使用できるように、自動的にアクティブ化されます。無効になっているリージョンの STS エンドポイントをアクティブ化することはできません。すべての AWS リージョンで有効なトークンには、デフォルトで有効になっているリージョンで有効なトークンを超える文字が含まれています。この設定を変更すると、一時的にトークンを保存する既存のシステムに影響する可能性があります。

この設定は、AWS マネジメントコンソール、AWS CLI、または AWS API を使用して変更できます。

グローバルエンドポイント (コンソール) に対するセッショントークンの リージョンの互換性を変更するには

  1. IAM 管理タスクを実行するアクセス許可がある ルートユーザー または IAM ユーザーとしてサインインします。セッショントークンの互換性を変更するには、iam:SetSecurityTokenServicePreferences アクションを許可するポリシーがある必要があります。

  2. IAM コンソールを開きます。ナビゲーションペインで [アカウント設定] を選択します。

  3. 必要に応じて、[Security Token Service(STS) (セキュリティトークンサービス (STS))] セクションを展開します。[グローバルエンドポイント] の横にある最初のテーブルでは、[Region compatibility of session tokens (セッショントークンのリージョンの互換性)] 列は Valid only in AWS Regions enabled by default を示します。[Change] を選択します。

  4. [Change region compatibility of session tokens for global endpoint (グローバルエンドポイントに対するセッショントークンのリージョンの互換性を変更する)] ダイアログボックスで、[Valid in all AWS Regions (すべての AWS リージョンで有効)] を選択します。次に、[変更の保存] を選択します。

    注記

    すべての AWS リージョンで有効なトークンには、デフォルトで有効になっているリージョンで有効なトークンを超える文字が含まれています。この設定を変更すると、一時的にトークンを保存する既存のシステムに影響する可能性があります。

グローバルエンドポイント (AWS CLI) に対するセッショントークンの リージョンの互換性を変更するには

セキュリティトークンのバージョンを設定します。バージョン 1 トークンは、デフォルトで利用できる AWS リージョンでのみ有効です。これらのトークンは、アジアパシフィック (香港) など手動で有効になっているリージョンでは動作しません。バージョン 2 のトークンはすべてのリージョンで有効です。ただし、バージョン 2 トークンにはさらに多くの文字が含まれており、一時的にトークンを保存するシステムに影響する可能性があります。

グローバルエンドポイント (AWS API) に対するセッショントークンの リージョンの互換性を変更するには

セキュリティトークンのバージョンを設定します。バージョン 1 トークンは、デフォルトで利用できる AWS リージョンでのみ有効です。これらのトークンは、アジアパシフィック (香港) など手動で有効になっているリージョンでは動作しません。バージョン 2 のトークンはすべてのリージョンで有効です。ただし、バージョン 2 トークンにはさらに多くの文字が含まれており、一時的にトークンを保存するシステムに影響する可能性があります。

AWS リージョンでの AWS STS のアクティブ化と非アクティブ化

リージョンに対して STS を有効にすると、AWS STS は、AWS STS リクエストを行うアカウントのユーザーとロールに一時的な認証情報を発行できます。その後、これらの認証情報は、デフォルトで有効であるリージョン、または手動で有効にされているリージョンで使用できます。リージョンは、一時的な認証情報が生成されるアカウントでアクティブ化する必要があります。リクエストを行うときに、ユーザーが同じアカウントにサインインしたかまたは別のアカウントにサインインしたかは関係ありません。

たとえば、アカウント A 内のあるユーザーが STS リージョンのエンドポイント https://sts.us-west-2.amazonaws.comsts:AssumeRole API リクエストを送信するとします。このリクエストは、アカウント B にある Developer という名前のロール用の一時的な認証情報を求めるものです。これはアカウント B 内のエンティティの認証情報を作成するリクエストであるため、アカウント B が us-west-2 リージョンをアクティブ化する必要があります。アカウント A (または他のアカウント) のユーザーは、us-west-2 エンドポイントを呼び出して、自分のアカウントでこのリージョンがアクティブ化されているかどうかに関わらず、アカウント B の認証情報をリクエストできます。

注記

アクティブなリージョンはそのアカウントで一時的な認証情報を使用するすべてのユーザーが利用できます。どの IAM ユーザーまたはロールがリージョンにアクセスできるかを制御するには、アクセス許可ポリシーで、aws:RequestedRegion 条件キーを使用します。

デフォルトで有効なリージョンで AWS STS をアクティブ化または非アクティブ化するには (コンソール)

  1. IAM 管理タスクを実行するアクセス許可がある ルートユーザー または IAM ユーザーとしてサインインします。

  2. IAM コンソールを開き、ナビゲーションペインで [アカウント設定] を選択します。

  3. 必要に応じて、[Security Token Service (STS)] を展開し、有効化するリージョンを見つけて、[有効化] または [無効化] をクリックします。有効にする必要があるリージョンの場合、リージョンを有効にすると STS が自動的にアクティブになります。リージョンを有効にすると、AWS STS はそのリージョンに対して常にアクティブになり、非アクティブ化することはできません。リージョンを有効にする方法については、AWS General Reference の「AWS リージョンの管理」を参照してください。

AWS STS リージョンを使用するコードの記述

リージョンをアクティブ化すると、そのリージョンに AWS STS API 呼び出しを割り振ることができます。次の Java コードスニペットは、欧州 (アイルランド) (eu-west-1) リージョンにリクエストを送信するように AWSSecurityTokenService オブジェクトを設定する方法を示しています。

EndpointConfiguration regionEndpointConfig = new EndpointConfiguration("https://sts.eu-west-1.amazonaws.com", "eu-west-1"); AWSSecurityTokenService stsRegionalClient = AWSSecurityTokenServiceClientBuilder.standard() .withCredentials(credentials) .withEndpointConfiguration(regionEndpointConfig) .build();

AWS STS では、リージョンのエンドポイントへの呼び出しを推奨します。手動でリージョンを有効にする方法については、AWS General Reference の「AWS リージョンの管理」を参照してください。

この例では、最初の行は regionEndpointConfig という EndpointConfiguration オブジェクトをインスタンス化し、エンドポイントの URL とリージョンをパラメータとして渡します。

他のすべての言語とプログラミング環境の組み合わせについては、「関連する SDK のドキュメント」を参照してください。

リージョンとエンドポイント

次の表に、リージョンとそのエンドポイントを一覧表示します。ここには、デフォルトでアクティブ化されるものや、ユーザーがアクティブ化または非アクティブ化できるものが示されています。

リージョン名 エンドポイント デフォルトでアクティブ 手動でアクティブ化/非アクティブ化
--グローバル-- sts.amazonaws.com Yes No
米国東部 (オハイオ) sts.us-east-2.amazonaws.com あり Yes
米国東部(バージニア北部) sts.us-east-1.amazonaws.com あり No
米国西部 (北カリフォルニア) sts.us-west-1.amazonaws.com あり Yes
米国西部 (オレゴン) sts.us-west-2.amazonaws.com あり Yes
アフリカ (ケープタウン) sts.af-south-1.amazonaws.com いいえ¹ No
アジアパシフィック (香港) sts.ap-east-1.amazonaws.com いいえ¹ No
アジアパシフィック (ムンバイ) sts.ap-south-1.amazonaws.com あり Yes
アジアパシフィック (ソウル) sts.ap-northeast-2.amazonaws.com あり Yes
アジアパシフィック (シンガポール) sts.ap-southeast-1.amazonaws.com あり Yes
アジアパシフィック (シドニー) sts.ap-southeast-2.amazonaws.com あり Yes
アジアパシフィック (東京) sts.ap-northeast-1.amazonaws.com あり Yes
カナダ (中部) sts.ca-central-1.amazonaws.com あり Yes
欧州 (フランクフルト) sts.eu-central-1.amazonaws.com あり Yes
欧州 (アイルランド) sts.eu-west-1.amazonaws.com あり Yes
欧州 (ロンドン) sts.eu-west-2.amazonaws.com あり Yes
ヨーロッパ (ミラノ) sts.eu-south-1.amazonaws.com いいえ¹ No
欧州 (パリ) sts.eu-west-3.amazonaws.com あり Yes
欧州 (ストックホルム) sts.eu-north-1.amazonaws.com あり Yes
中東 (バーレーン) sts.me-south-1.amazonaws.com いいえ¹ No
南米 (サンパウロ) sts.sa-east-1.amazonaws.com あり あり

¹リージョンで使用するには、リージョンを有効にする必要があります。これにより、STS が自動的にアクティブになります。これらのリージョンで STS を手動でアクティブ化または非アクティブ化することはできません。

AWS CloudTrail とリージョンのエンドポイント

リージョンのエンドポイント (us-east-2.amazonaws.com など) に対する呼び出しは、リージョンのサービスへの呼び出しと同様に AWS CloudTrail のログに記録されます。グローバルエンドポイント sts.amazonaws.com への呼び出しは、グローバルサービスへの呼び出しとして記録されます。詳細については、「AWS CloudTrail による IAM および AWS STS の API コールのログ記録」を参照してください。