ロール
IAM ロールは、AWS で許可/禁止する操作を決めるアクセス権限ポリシーが関連付けられている AWS ID であるという点で、ユーザーと似ています。
ただし、ユーザーは 1 人の特定の人に一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。
また、ロールにはいずれの認証情報(パスワードやアクセスキー)も関連付けられません。
ユーザーがロールに割り当てられた場合、代わりに、アクセスキーが動的に作成され、ユーザーに提供されます。
ロールを使用して、通常は AWS リソースへのアクセス権のないユーザー、アプリケーション、サービスにそのアクセス権を委任できます。
たとえば、AWS アカウントのユーザーに、通常はないリソースへのアクセス権を付与したり、ある AWS アカウントのユーザーに、別のアカウントのリソースへのアクセス権を付与したりできます。
ロール
AWS のアクションおよびリソースへのアクセスを許可する一連のアクセス権限です。
これらのアクセス権限は、IAM ユーザーまたはグループではなくロールにアタッチされます。
ロールを使用できるのは、以下のものです。
- ロールと同じ AWS アカウントの IAM ユーザー
- ロールとは異なる AWS アカウントの IAM ユーザー
- Amazon Elastic Compute Cloud など、AWS が提供するウェブサービス(Amazon EC2)
- SAML 2.0 または OpenID Connect と互換性のある外部 ID プロバイダー(IdP)サービスによって認証される外部ユーザー、またはカスタム作成された ID ブローカー。
AWSサービスロール
サービスがお客様に代わってアクションを実行するために引き受けるロールです。
ほとんどの AWS のサービス環境を設定するときに、サービスが引き受けるロールを定義する必要があります。
このサービスロールには、サービスが必要とする AWS のリソースにサービスがアクセスするために必要なすべてのアクセス権限を含める必要があります。
サービスロールはサービスによって異なりますが、多くのサービスロールでは、そのサービスの文書化された要件を満たしている限り、アクセス権限を選択することができます。
IAM 内部からロールを作成、修正、削除できます。
EC2 インスタンスの AWS サービスロール
アプリケーションを実行する Amazon EC2 インスタンスを起動するためにサービスが引き受ける特殊なタイプのサービスロールです。
このロールは EC2 インスタンスにその起動時に割り当てられます。
AWS はロールにアタッチされた一時的なセキュリティ認証情報を自動的に付与し、アプリケーションに代わって EC2 インスタンスがその認証情報を使用できるようにします。
AWS サービスにリンクされたロール
サービスに直接リンクされた一意のタイプのサービスロールです。
このサービスにリンクされたロールは一部の AWS サービスで必要となります。
このロールはサービスによって事前に定義され、サービスで必要なすべてのアクセス権限が含まれます。
これにより、必要なアクセス権限を手動で追加する必要がなくなるため、サービスの設定が簡単になります。
このロールは IAM 内から作成できます。
ただし、ロールはサービスにリンクされているため、IAM 内でロールをカスタマイズすることはできません。
リンクされたサービスを通じてのみ、これらのロールを管理および削除できます。
フェデレーション
外部 ID プロバイダーと AWS との間に信頼関係を作成することです。
ユーザーは Login with Amazon、Facebook、Google、OpenID Connect(OIDC)互換の任意の IdP などのウェブ ID プロバイダーにサインインすることができます。
また、Microsoft Active Directory フェデレーションサービスなど、Security Assertion Markup Language(SAML)2.0 互換の企業の ID システムにサインインすることもできます。
このような外部 ID プロバイダーと AWS の間の信頼関係を設定するために OIDC および SAML 2.0 を使用する場合、ユーザーは IAM ロールを割り当てられ、ユーザーが AWS リソースにアクセス可能にする一時的な認証情報を受け取ります。
ポリシー
ロールのアクセス権限を定義するための、JSON 形式のドキュメントです。
ドキュメントは IAM ポリシー言語のルールに従って記述されます。
ロールを作成すると、2 つの別個のポリシーが作成されます。
ロールを引き受けることが許可されたユーザー(信頼されるエンティティ、つまりプリンシパル)を指定する信頼ポリシーと、プリンシパルが使用することを許可されたアクションとリソースを定義するアクセス権限ポリシーです。
クロスアカウントアクセスのロール
あるアカウントのリソースに対するアクセス権限を、別のアカウントの信頼されるプリンシパルに付与します。
ロールは、クロスアカウントアクセスを許可する主な方法です。
AWSサービスロールの作成
ここではAWSサービスにアクセス許可を委任するロールを作成します。
ロールの作成から「AWSサービスロール」を選択、ロールを許可するサービスを選択します。
ロールにポリシーを紐付け
ロール名の記入
ロール名は AWS アカウント内で一意でなければなりません。
大文字と小文字は区別されません。