Amazon Aurora と IAM の連携
IAM を使用して、Aurora へのアクセスを管理するには、Aurora で使用できる IAM の機能を理解しておく必要があります。Aurora や AWS の他のサービスと IAM との連携の概要については、IAM ユーザーガイドの「IAM と連携する AWS のサービス」を参照してください。
Aurora アイデンティティベースのポリシー
IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、またアクションを許可または拒否する条件を指定できます。Aurora は、特定のアクション、リソース、および条件キーをサポートしています。JSON ポリシーで使用するすべての要素については、IAM ユーザーガイド の「IAM JSON ポリシーエレメントのリファレンス」を参照してください。
アクション
IAM アイデンティティベースのポリシーの Action
エレメントは、そのポリシーにより許可または拒否される特定のアクションについて説明します。ポリシーアクションの名前は通常、関連する AWS API オペレーションと同じです。このアクションは、関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。
Aurora のポリシーアクションは、アクションの前にプレフィックス rds:
を使用します。例えば、Amazon RDS DescribeDBInstances
API オペレーションを使用して DB インスタンスを指定するアクセス許可を付与するには、ポリシーに rds:DescribeDBInstances
アクションを含めます。ポリシーステートメントには、Action
または NotAction
の要素を含める必要があります。Aurora は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。
単一のステートメントに複数のアクションを指定するには、次のようにコンマで区切ります。
"Action": [ "rds:action1", "rds:action2"
ワイルドカード (*) を使用して複数のアクションを指定することができます。例えば、Describe
という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。
"Action": "rds:Describe*"
Aurora アクションのリストを確認するには、サービス認証リファレンスの「Amazon RDS で定義されるアクション」を参照してください。
リソース
Resource
エレメントは、アクションが適用されるオブジェクトを指定します。ステートメントには、Resource
または NotResource
エレメントを含める必要があります。ARN を使用して、またはステートメントがすべてのリソースに適用されることを示すワイルドカード (*) を使用して、リソースを指定します。
DB インスタンスリソースには次のような 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 インスタンス作成時に特定のセキュリティグループおよびパラメータグループを使用するように IAM ユーザーに義務付けることができます。複数のリソースを単一のステートメントで指定するには、ARN をカンマで区切ります。
"Resource": [ "resource1", "resource2"
Aurora リソースのタイプとその ARN のリストを確認するには、サービス認証リファレンス の「Amazon RDS で定義されるリソース」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「Amazon RDS で定義されるアクション」を参照してください。
条件キー
Condition
エレメント (またはCondition
ブロック) を使用すると、ステートメントが有効な条件を指定できます。Condition
エレメントはオプションです。イコールや以下などの条件演算子を使用する条件表現を構築して、リクエスト内に値のあるポリシーの条件に一致させることができます。
1 つのステートメントに複数の Condition
エレメントを指定する場合、または 1 つの Condition
エレメントに複数のキーを指定する場合、AWS が論理 AND
演算を使用してそれらを評価します。単一の条件キーに複数の値を指定する場合、AWS が論理的な OR
オペレーションを使用して条件を評価します。ステートメントの許可が付与される前にすべての条件が満たされる必要があります。
条件を指定する際にプレースホルダー変数も使用できます。例えば、IAM ユーザー名でタグ付けされている場合のみ、リソースにアクセスする IAM ユーザー許可を付与できます。詳細については、IAM ユーザーガイドの「IAM ポリシーエレメント: 可変およびタグ」を参照してください。
Aurora は独自の条件キーを定義し、一部のグローバル条件キーの使用をサポートしています。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドの「AWS グローバル条件コンテキストキー」を参照してください。
すべての RDS API オペレーションは、aws:RequestedRegion
条件キーをサポートします。
Aurora の条件キーのリストを確認するには、サービス認証リファレンスの「Amazon RDS の条件キー」を参照してください。どのアクションおよびリソースと条件キーを使用できるかについては、「Amazon RDS で定義されるアクション」を参照してください。
例
Aurora アイデンティティベースのポリシーの例を表示するには、「Amazon Aurora アイデンティティベースのポリシーの例」を参照してください。
Aurora リソースベースのポリシー
Aurora では、リソースベースのポリシーはサポートされていません。
Aurora タグに基づいた認可
タグを Aurora リソースにアタッチするか、Aurora へのリクエストでタグを渡すことができます。タグに基づいてアクセスを制御するには、aws:ResourceTag/
、key-name
aws:RequestTag/
、または key-name
aws:TagKeys
の条件キーを使用して、ポリシーの条件要素でタグ情報を提供します。詳細については、IAM ユーザーガイドのタグを使用したAWSリソースへのアクセスのコントロールを参照してください。Aurora リソースのタグ付けの詳細については、「条件の指定: カスタムタグの使用」を参照してください。
リソースのタグに基づいてリソースへのアクセスを制限するためのアイデンティティベースのポリシーの例を表示するには、「2 つの異なる値を持つタグが付いたリソースに対するアクションにアクセス許可を付与する」を参照してください。
Aurora の IAM ロール
[IAM role](IAM ロール) は AWS アカウント内のエンティティで、特定の許可を持っています。
Aurora での一時的な認証情報の使用
一時的な認証情報を使用して、フェデレーションでサインイン、IAM ロールを引き受ける、またはクロスアカウントロールを引き受けることができます。テンポラリセキュリティ認証情報を取得するには、AWS STSAssumeRole または GetFederationToken などの API オペレーションを呼び出します。
Aurora では、テンポラリ認証情報の使用をサポートしています。
サービスにリンクされたロール
サービスにリンクされたロールによって、AWS サービスが他のサービスのリソースにアクセスして自動的にアクションを完了できます。サービスにリンクされたロールは、IAM マネジメントコンソールの [ロール] リストに表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。
Aurora はサービスにリンクされたロールをサポートします。Aurora サービスにリンクされたロールの作成または管理の詳細については、「Amazon Aurora のサービスにリンクされたロールの使用」を参照してください。
サービスロール
この機能では、[service role] (サービスのロール) をユーザーに代わって引き受けることをサービスに許可します。このロールにより、サービスはユーザーに代わって他のサービスのリソースにアクセスし、アクションを実行できます。サービスロールは、IAM マネジメントコンソールの [ロール] リストに表示され、アカウントによって所有されます。つまり、IAM 管理者は、このロールのアクセス許可を変更できます。ただし、これを行うことにより、サービスの機能が損なわれる場合があります。
Aurora ではサービスロールがサポートされています。