ロールに関する用語と概念 - AWS Identity and Access Management

ロールに関する用語と概念

ロールの操作に役立つ基本的な用語を紹介します。

ロール

特定のアクセス権限を持ち、アカウントで作成できる IAM アイデンティティです。IAM ロールは、IAM ユーザーといくつかの類似点を持っています。ロールとユーザーは、両方とも、ID が AWS でできることとできないことを決定するアクセス許可ポリシーを持つ AWS ID です。ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。また、ロールには標準の長期認証情報 (パスワードやアクセスキーなど) も関連付けられません。代わりに、ロールを引き受けると、ロールセッション用の一時的なセキュリティ認証情報が提供されます。

ロールを使用できるのは、以下のものです。

  • ロールと同じ AWS アカウント の IAM ユーザー

  • ロールとは異なる AWS アカウント の IAM ユーザー

  • Amazon Elastic Compute Cloud (Amazon EC2) などの AWS が提供するウェブサービス

  • SAML 2.0 または OpenID Connect と互換性のある外部 ID プロバイダー (IdP) サービスによって認証される外部ユーザー、またはカスタム作成された ID ブローカー。

AWS サービス ロール

サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービス にアクセス許可を委任するロールの作成」を参照してください。

EC2 インスタンスの AWS サービスロール

アプリケーションが Amazon EC2 インスタンス上で実行しているサービスロールの特殊なタイプは、アカウントでアクションの実行を引き受けることができます。このロールは EC2 インスタンスにその起動時に割り当てられます。このインスタンスで実行しているアプリケーションは一時的なセキュリティ認証情報を取得でき、ロールが許可するアクションを実行できます。EC2 インスタンスのサービスロールの使用の詳細については、「Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス許可を付与する」を参照してください。

AWS サービスにリンクされたロール

サービスにリンクされたロールは、AWS のサービスにリンクされているサービスロールの一種です。サービスがロールを引き受け、ユーザーに代わってアクションを実行できるようになります。サービスにリンクされたロールは、AWS アカウント に表示され、サービスによって所有されます。IAM 管理者は、サービスリンクロールの権限を表示できますが、編集することはできません。

注記

サービスにリンクされたロールのサポートを開始する時点ですでにサービスを使用している場合は、アカウントの新しいロールに関する E メールが送信されることがあります。この場合、サービスにリンクされたロールは、サービスによって自動的にアカウントに作成されています。このロールをサポートするために必要な操作はありません。また、手動でロールを削除しないでください。詳細については、「AWS アカウントに新しいロールが表示される」を参照してください。

サービスにリンクされたロールを使用してサポートするサービスについては、「IAM と連携する AWS のサービス」を参照し、[Service-Linked Role] (サービスにリンクされたロール) 列が [Yes] (はい) になっているサービスを検索してください。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[Yes] (はい) リンクを選択します。詳細については、「サービスリンクロールの使用」を参照してください。

ロールの連鎖

ロールの連鎖は、AWS CLI または API を使用して 2 つ目のロールを引き受けるロールを使用する場合に発生します。たとえば、RoleA には RoleB を引き受けるアクセス権があります。User1 は AssumeRole API オペレーションの長期的なユーザー認証情報を使用して RoleA を引き受けることができます。このオペレーションを用いて RoleA の短期的な認証情報を返します。ロールが連鎖していれば、User1 によって RoleB が引き受けられるよう RoleA の短期的な認証情報を使用できます。

ロールを引き受けるときは、セッションタグを渡して、タグを推移的に設定できます。推移的なセッションタグは、ロールの連鎖内の後続のすべてのセッションに渡されます。セッションタグの詳細については、「AWS STS でのセッションタグの受け渡し」を参照してください。

ロールの連鎖では、AWS CLI または AWS API ロールセッションは最長 1 時間に制限されます。AssumeRole API オペレーションを使用してロールを引き受ける場合は、DurationSeconds パラメータを使用してロールセッションの期間を指定できます。パラメータの値は、ロールの最大セッション期間設定によって、最大 43200 秒 (12 時間) まで指定できます。ただし、ロールの連鎖を使用してロールを引き受ける場合、DurationSeconds パラメータ値で 1 時間を超える値を指定すると、オペレーションは失敗します。

AWS では、ロールチェーンとして EC2 インスタンスで実行されるアプリケーションにアクセス許可を付与するためのロールの使用は処理されません。

委任

委任により、制御するリソースへのアクセスを許可するユーザーにアクセス許可を付与できます。委任には、2 つのアカウント間の信頼を設定することが含まれます。1 つ目は、リソースを所有するアカウント(信頼するアカウント)です。2 つ目は、リソース(信頼されたアカウント)にアクセスする必要があるユーザーを含むアカウントです。信頼するアカウントと信頼されたアカウントには、以下のいずれかを指定できます。

  • 同じアカウント。

  • 組織の制御下にある別々のアカウント。

  • 異なる組織によって所有される 2 つのアカウント。

リソースにアクセスする権限を委任するには、2 つのポリシーがアタッチされた信頼されるアカウントの IAM ロールを作成します。アクセス許可ポリシーは、リソースに対して目的のタスクを実行するために必要なアクセス許可をロールのユーザーに付与します。信頼ポリシーは、信頼されたアカウントのどのメンバーにロールを割り当てることができるかを指定します。

信頼ポリシーを作成する際、プリンシパル要素およびプリンシパル要素内の ARN の一部としてワイルドカード (*) を指定することはできません。信頼ポリシーは、信頼するアカウントのロールにアタッチされ、アクセス許可の半分です。残りの半分は、ユーザーがロールを切り替えることができる、またはロールを引き受けることができる信頼されたアカウントのユーザーにアタッチされたアクセス許可ポリシーです。ロールを引き受けるユーザーの各自のアクセス権限は一時的に無効になりますが、その代わりにロールのアクセス権限を取得します。ユーザーがロールの使用を終了または停止すると、元のユーザーアクセス権限に戻ります。外部 ID という追加パラメータは、同じ組織がコントロールしていないアカウント間でロールを安全に利用するのに役立ちます。

フェデレーション

外部 ID プロバイダーと AWS との間に信頼関係を作成することです。ユーザーは OIDC プロバイダー (Login with AmazonFacebookGoogle など)、または OpenID Connect (OIDC) 互換の任意の IdP にサインインできます。また、Microsoft Active Directory フェデレーションサービスなど、Security Assertion Markup Language(SAML)2.0 互換の企業の ID システムにサインインすることもできます。OIDC および SAML 2.0 を使用して、このような外部 ID プロバイダーと AWS との信頼関係を設定する場合、ユーザーは IAM ロールに割り当てられます。ユーザーは一時的な認証情報を受け取り、これを使用して AWS リソースにアクセスすることもできます。

委任ユーザー

IAM ユーザーを作成する代わりに、AWS Directory Service、エンタープライズユーザーディレクトリ、または OIDC プロバイダーの既存の ID を使用できます。このようなユーザーはフェデレーションユーザーと呼ばれます。AWS では、ID プロバイダーを通じてアクセスがリクエストされたとき、フェデレーションユーザーにロールを割り当てます。フェデレーティッドユーザーの詳細については、「フェデレーティッドユーザーとロール」を参照してください。

信頼ポリシー

JSON ポリシードキュメントでは、ロールを引き受けるために信頼するプリンシパルを定義します。ロール信頼ポリシーは、IAMのロールに関連付けられている必須のリソースベースのポリシーです。信頼ポリシーで指定できるプリンシパルには、ユーザー、ロール、アカウント、およびサービスが含まれます。

アクセス許可ポリシー

ロールで使用できるアクションやリソースを定義する JSON 形式のアクセス許可に関するドキュメント。ドキュメントは IAM ポリシー言語のルールに従って記述されます。

アクセス許可の境界

ポリシーを使用して、アイデンティティベースのポリシーがロールに付与できるアクセス許可の上限を設定する高度な機能です。アクセス許可の境界をサービスにリンクされたロールに適用することはできません。詳細については、「IAM エンティティのアクセス許可境界」を参照してください。

プリンシパル

アクションを実行してリソースにアクセスできる AWS 内のエンティティです。プリンシパルは、AWS アカウントのルートユーザー、IAM ユーザー、またはロールをにすることができます。以下の 2 つの方法のいずれかを使用して、リソースに対するアクセス許可を付与できます。

  • ユーザー(直接、またはグループ経由で間接的に)またはロールに対し、アクセス権限ポリシーをアタッチすることができます。

  • リソースベースのポリシーをサポートするサービスについては、リソースにアタッチされているポリシーの Principal 要素でプリンシパルを指定できます。

AWS アカウント をプリンシパルにする場合、通常はアカウント内で定義されているすべてのプリンシパルが対象となります。

注記

ワイルドカード (*) を使用して、ロールの信頼ポリシー内のプリンシパル名または ARN の一部に致させることはできません。詳細については、「AWS JSON ポリシーの要素: Principal」を参照してください。

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

あるアカウントのリソースに対するアクセス権限を、別のアカウントの信頼されるプリンシパルに付与するロール。クロスアカウントアクセスを許可する主な方法は、ロールを使用することです。ただし、一部の AWS サービスでは、リソースにポリシーを直接アタッチすることができます (ロールをプロキシとして使用する代わりに)。これらはリソースベースのポリシーと呼ばれ、別の AWS アカウント のプリンシパルにリソースへのアクセスを許可するために使用できます。これらのリソースには、Amazon Simple Storage Service (S3) バケット、S3 Glacier ボールト、Amazon Simple Notification Service (SNS) トピック、Amazon Simple Queue Service (SQS) キューなどがあります。リソースベースのポリシーをサポートするサービスを確認するには、「IAM と連携する AWS のサービス」を参照してください。 リソースベースのポリシーの詳細については、「IAM でのクロスアカウントのリソースへのアクセス」を参照してください。