Amazon Aurora と IAM の連携
IAM を使用して、Amazon Aurora へのアクセスを管理するには、Aurora で使用できる IAM の機能を理解しておく必要があります。
次の表は、Amazon Aurora で使用できる IAM 機能の一覧です。
| IAM 機能 | Amazon Aurora のサポート |
|---|---|
|
あり |
|
|
なし |
|
|
あり |
|
|
はい |
|
|
はい |
|
|
なし |
|
|
あり |
|
|
あり |
|
|
あり |
|
|
あり |
|
|
あり |
Amazon Aurora や AWS の他のサービスと IAM との連携の概要については、IAM ユーザーガイドの「IAM と連携する AWS のサービス」を参照してください。
トピック
Aurora アイデンティティベースのポリシー
アイデンティティベースのポリシーのサポート: あり。
アイデンティティベースのポリシーは、IAM ユーザーグループ、ユーザーのグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースポリシーの作成方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。
IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、IAM ユーザーガイドの「IAM JSON ポリシーの要素のリファレンス」を参照してください。
Aurora アイデンティティベースのポリシーの例
Aurora アイデンティティベースのポリシーの例を表示するには、「Amazon Aurora のアイデンティティベースのポリシーの例」を参照してください。
Aurora 内のリソースベースのポリシー
リソースベースのポリシーのサポート: なし。
リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーションユーザー、または AWS のサービス を含めることができます。
クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。
Aurora のポリシーアクション
ポリシーアクションのサポート: あり。
管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどんなリソースにどんな条件でアクションを実行できるかということです。
JSON ポリシーの Action 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。
Aurora のポリシーアクションは、アクションの前にプレフィックス rds: を使用します。例えば、Amazon RDS DescribeDBInstances API オペレーションを使用して DB インスタンスを指定するアクセス許可を付与するには、ポリシーに rds:DescribeDBInstances アクションを含めます。ポリシーステートメントには、Action または NotAction エレメントを含める必要があります。Aurora は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。
単一のステートメントに複数のアクションを指定するには、次のようにコンマで区切ります。
"Action": [ "rds:action1", "rds:action2"
ワイルドカード *を使用して複数のアクションを指定することができます。例えば、Describe という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。
"Action": "rds:Describe*"
Aurora アクションのリストを確認するには、「サービス認可リファレンス」の「Amazon RDS によって定義されるアクション」を参照してください。
Aurora のポリシーリソース
ポリシーリソースのサポート: あり。
管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどんなリソースにどんな条件でアクションを実行できるかということです。
Resource JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。
"Resource": "*"
DB インスタンスリソースには、次の Amazon リソースネーム (ARN) があります。
arn:${Partition}:rds:${Region}:${Account}:{ResourceType}/${Resource}
ARN の形式の詳細については、「Amazon リソースネーム ARN と AWS のサービスの名前空間」を参照してください。
例えば、ステートメントで dbtest DB インスタンスを指定するには、次の ARN を使用します。
"Resource": "arn:aws:rds:us-west-2:123456789012:db:dbtest"
特定のアカウントに属するすべての DB インスタンスを指定するには、ワイルドカード (*) を使用します。
"Resource": "arn:aws:rds:us-east-1:123456789012:db:*"
リソースの作成など、一部の RDS API オペレーションは、特定のリソースで実行できません。このような場合は、ワイルドカード (*) を使用します。
"Resource": "*"
Amazon RDS API オペレーションの多くが複数のリソースと関連します。例えば、CreateDBInstance では、DB インスタンスが作成されます。DB インスタンス作成時に特定のセキュリティグループおよびパラメータグループを使用するように ユーザーに義務付けることができます。複数リソースを単一ステートメントで指定するには、ARN をカンマで区切ります。
"Resource": [ "resource1", "resource2"
Aurora のリソースタイプおよび ARN のリストについては、「サービス認可リファレンス」の「Amazon RDS で定義されるリソース」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「Amazon RDS で定義されるアクション」を参照してください。
Aurora のポリシー条件キー
サービス固有のポリシー条件キーのサポート: あり。
管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
Condition 要素は、定義された基準に基づいてステートメントが実行されるタイミングを指定します。イコールや未満などの 条件演算子 を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドのAWS グローバル条件コンテキストキーを参照してください。
Aurora は独自の条件キーを定義し、一部のグローバル条件キーの使用をサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドの「AWS グローバル条件コンテキストキー」を参照してください。
すべての RDS API オペレーションは、aws:RequestedRegion 条件キーをサポートします。
Aurora の条件キーのリストについては、「サービス認可リファレンス」の「Amazon RDS の条件キー」を参照してください。どのアクションおよびリソースと条件キーを使用できるかについては、「Amazon RDS で定義されるアクション」を参照してください。
Aurora のアクセスコントロールリスト (ACL)
アクセスコントロールリスト (ACL) をサポート: なし。
アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするための許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。
Aurora タグを使ったポリシーにおける属性ベースのアクセスコントロール (ABAC)
ポリシーにおける属性ベースのアクセスコントロール (ABAC) タグをサポート: あり。
属性ベースのアクセス制御 (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグを付けることで、プリンシパルのタグがリソースタグと一致するときに操作を許可する ABAC ポリシーを設計できます。
タグに基づいてアクセスを管理するには、aws:ResourceTag/、key-nameaws:RequestTag/、または key-nameaws:TagKeys の条件キーを使用して、ポリシーの 条件要素でタグ情報を提供します。
サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値はありです。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「部分的」になります。
ABAC の詳細については、「IAM ユーザーガイド」の「ABAC 認可でアクセス許可を定義する」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「IAM ユーザーガイド」の「属性ベースのアクセスコントロール (ABAC) を使用する」を参照してください。
Aurora リソースのタグ付けの詳細については、「条件の指定: カスタムタグの使用」を参照してください。リソースのタグに基づいてリソースへのアクセスを制限するためのアイデンティティベースのポリシーの例を表示するには、「2 つの異なる値を持つタグが付いたリソースに対するアクションにアクセス許可を付与する」を参照してください。
Aurora での一時的な認証情報の使用
一時的な認証情報のサポート: あり。
一時的な認証情報は、AWS リソースへの短期的なアクセスを提供し、フェデレーションまたはスイッチロールの使用時に自動的に作成されます。AWS では、長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、「IAM ユーザーガイド」の「IAM の一時的な認証情報」および「IAM と連携する AWS のサービス」を参照してください。
Aurora のフォワードアクセスセッション
転送アクセスセッションをサポート: あり。
転送アクセスセッション (FAS) は、AWS のサービスを呼び出すプリンシパルの権限を、AWS のサービスのリクエストと合わせて使用し、ダウンストリームのサービスに対してリクエストを行います。FAS リクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。
Aurora のサービスロール
サービスロールのサポート: あり。
サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービス に許可を委任するロールを作成する」を参照してください。
警告
サービスロールの許可を変更すると、Aurora のサービスロール の機能が破損する可能性があります。Aurora が指示する場合以外は、サービスロールを編集しないでください。
Aurora のサービスリンクロール
サービスリンクロールのサポート: あり。
サービスにリンクされたロールは、AWS のサービスにリンクされているサービスロールの一種です。サービスがロールを引き受け、ユーザーに代わってアクションを実行できるようになります。サービスにリンクされたロールは、AWS アカウント に表示され、サービスによって所有されます。IAM 管理者は、サービスリンクロールのアクセス許可を表示できますが、編集することはできません。
Aurora サービスにリンクされたロールの使用の詳細については、「Amazon Aurora のサービスにリンクされたロールの使用」を参照してください。