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 プロバイダーについては、「ID プロバイダーとフェデレーション」を参照してください。

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

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

    AWS STS ウェブ ID フェデレーションでは、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 による認証」を参照してください。

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

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

Amazon EC2 の ロール

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

その他の AWS サービス

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