IAM の一時的な認証情報 - AWS Identity and Access Management

IAM の一時的な認証情報

AWS Security Token Service (AWS STS) を使用して、AWS リソースへのアクセスをコントロールできる一時的セキュリティ認証情報を持つ、信頼されたユーザーを作成および提供することができます。一時的セキュリティ認証情報の機能は、長期的なアクセスキー認証情報とほとんど同じですが、次の相違点があります。

  • 一時的セキュリティ認証情報は、その名前が示すとおり、使用期限が短くなっています。有効期限は数分から数時間に設定できます。認証情報が失効すると、AWS はそれらを認識しなくなります。また、その認証情報によって作成された API リクエストによるあらゆるタイプのアクセスが許可されなくなります。

  • 一時的セキュリティ認証情報はユーザーとともに保存されることはなく、ユーザーのリクエストに応じて動的に生成され、提供されます。一時的セキュリティ認証情報が失効すると(または失効する前でも)、ユーザーは新しい認証情報をリクエストできます。ただし、リクエストするユーザーがまだその権限を持っている場合に限ります。

そのため、一時的な認証情報には、長期の認証情報よりも次の利点があります。

  • アプリケーションの長期の AWS セキュリティ認証情報を配布したり埋め込んだりする必要がありません。

  • ユーザーに対して AWS ID を定義せずに AWS リソースへのアクセスを許可できます。一時的認証情報はロールおよび ID フェデレーションの基本となります。

  • 一時的セキュリティ認証情報の有効期限は限られているので、認証情報が不要になった際に更新したり、明示的に取り消したりする必要がありません。一時的セキュリティ認証情報の有効期限が切れると、再利用することはできません。認証情報が有効な期間を、最大限度まで指定できます。

AWS STS と AWS リージョン

一時的な認証情報は AWS STS によって生成されます。デフォルトでは、AWS STS は https://sts.amazonaws.com に 1 つのエンドポイントのあるグローバルサービスです。ただし、他のサポートされているリージョンにあるエンドポイントへの AWS STS API 呼び出しを実行することもできます。地理的に近い場所にあるリージョンのサーバーに対してリクエストを送信することによって、レイテンシー (サーバーのラグ) を低減できます。認証情報を取得したリージョンに関係なく、認証情報はグローバルに使用できます。詳細については、「AWS リージョン で AWS STS を管理する」を参照してください。

一時的な認証情報の一般的なシナリオ

一時的な認証情報は、ID フェデレーション、委任、クロスアカウントアクセス、および IAM ロールが使用されるシナリオで便利です。

ID フェデレーション

AWS 以外の外部システムでユーザー ID を管理し、それらのシステムのアクセス許可からサインインするユーザーに、AWS タスクの実行や AWS リソースへのアクセスの権限を付与できます。IAM では、2 種類のアイデンティティフェデレーションがサポートされます。いずれの場合も、ID は AWS の外部に格納されます。異なる点は、外部システムが存在する場所 (データセンターまたはウェブの外部サードパーティ) です。ID フェデレーションの一時的なセキュリティ認証情報の特徴を比較するには、「AWS STS 認証情報を比較する」を参照してください。

外部 ID プロバイダーについては、「ID プロバイダーとフェデレーション」を参照してください。

  • OpenID Connect (OIDC) フェデレーション – モバイルまたはウェブアプリケーションに対して、ユーザーに一般的なサードパーティー ID プロバイダー (Login with Amazon、Facebook、Google、OIDC 2.0 互換の任意のプロバイダーなど) を使用したサインインを求めることができます。カスタムサインインコードを作成したり、独自のユーザー ID を管理したりする必要はありません。OIDC フェデレーションを使用すると、IAM ユーザーアクセスキーなどの長期的セキュリティ認証情報をアプリケーションに配布する必要がないため、AWS アカウント を安全に保つことができます。詳細については、「OIDC フェデレーション」を参照してください。

    AWS STS OIDC フェデレーションでは、Login with Amazon、Facebook、Google、および任意の OpenID Connect (OIDC) 互換の ID プロバイダーがサポートされています。

    注記

    モバイルアプリケーションに対しては、Amazon Cognito の使用をお勧めします。このサービスをモバイル開発用の AWS SDK と共に使用して、ユーザーの一意の ID を作成し、AWS リソースへの安全なアクセスのためにユーザーを認証できます。Amazon Cognito では、AWS STS と同じ ID プロバイダーがサポートされます。さらに、認証されていない (ゲスト) アクセスもサポートされ、ユーザーがサインインしたときにユーザーデータを移行することができます。また、Amazon Cognito には、ユーザーがデバイスを変えてもデータが保持されるように、ユーザーデータを同期するための API オペレーションも用意されています。詳細については、Amplify ドキュメントの「Amplify による認証」を参照してください。

  • SAML フェデレーション - 組織のネットワークのユーザーを認証し、新しい AWS ID を作成したり、異なるサインイン認証情報でサインインすることを求めたりすることなく、それらのユーザーに AWS へのアクセスを提供できます。これは、一時アクセスに対するシングルサインオンのアプローチとして知られています。AWS STS は Security Assertion Markup Language (SAML) 2.0 のようなオープンスタンダードをサポートしており、Microsoft AD FS を通じて Microsoft Active Directory を活用することが可能です。また、SAML 2.0 を使用して、ユーザー ID フェデレーション用の独自のソリューションを管理することもできます。詳細については、「SAML 2.0 フェデレーション」を参照してください。

    • カスタムフェデレーションブローカー – AWS組織の認証システムを使用して リソースへのアクセスを許可することができます。シナリオの例については、「AWS コンソールへのカスタム ID ブローカーアクセスを有効にする」を参照してください。

    • SAML 2.0 を使用したフェデレーション – AWS 組織の認証システムと SAML を使用して、 リソースへのアクセスを許可することができます。詳細とシナリオの例については、「SAML 2.0 フェデレーション」を参照してください。

クロスアカウントアクセスのロール

多くの組織は、複数の AWS アカウント を保持しています。ロールとクロスアカウントアクセスを使用すると、1 つのアカウントでユーザー ID を定義し、その ID を使用して、組織に属している他のアカウントの AWS リソースにもアクセスできるようにすることができます。これは、一時アクセスに対する委任アプローチとして知られています。クロスアカウントロールの作成の詳細については、「IAM ユーザーにアクセス許可を委任するロールを作成する」を参照してください。信頼ゾーン (信頼できる組織またはアカウント) 外にあるアカウントのプリンシパルにロールを引き受けるアクセス権があるかどうかについては、「IAM Access Analyzer とは」を参照してください。

Amazon EC2 の ロール

Amazon EC2 インスタンスでアプリケーションを実行し、これらのアプリケーションが AWS リソースにアクセスする必要がある場合は、アプリケーションの起動時に一時的セキュリティ認証情報をインスタンスに提供できます。これらの一時的なセキュリティ認証情報は、インスタンスで実行されるすべてのアプリケーションが使用できるので、インスタンスに長期的な認証情報を保存する必要がありません。詳細については、「Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス許可を付与する」を参照してください。

IAM Amazon EC2 のロールの認証情報の詳細については、「Amazon Elastic Compute Cloud ユーザーガイド」の「Amazon EC2 の IAM ロール」を参照してください。

その他の AWS サービス

一時的セキュリティ認証情報を使用して、ほとんどの AWS サービスにアクセスできます。一時的セキュリティ認証情報を受け入れるサービスのリストは、「IAM と連携する AWS のサービス」を参照してください。

一時認証情報を使用するサンプルアプリケーション

AWS Security Token Service (AWS STS) を使用して、AWS リソースへのアクセスをコントロールできる一時的セキュリティ認証情報を持つ、信頼されたユーザーを作成および提供することができます。AWS STS の詳細については、「IAM の一時的な認証情報」を参照してください。AWS STS を使用して一時的なセキュリティ認証情報を管理する方法を確認するために、完全なシナリオ例を実装する以下のサンプルアプリケーションをダウンロードできます。

OIDC フェデレーションのサンプル

以下のサンプルアプリケーションは、Login with Amazon、Amazon Cognito、Facebook、Google などのプロバイダーで OIDC フェデレーションを使用する方法を示しています。これらのプロバイダーからの認証情報を一時的な AWS セキュリティ認証情報に交換して、AWS のサービスにアクセスできます。

  • Amazon Cognitoチュートリアル – モバイル開発用の AWS SDK で Amazon Cognitoを使用することをお勧めします。Amazon Cognito は、モバイルアプリの ID を管理するための最も簡単な方法であり、同期やクロスデバイス ID のような追加機能も利用できます。Amazon Cognito の詳細については、「Amplify ドキュメント」の「Amplify による認証」を参照してください。

以下のシナリオやアプリケーションは、一時的なセキュリティ認証情報の使用時に役立ちます。

AWS におけるポリシーとアクセス権限の詳細については、以下のトピックを参照してください。