メニュー
Amazon Relational Database Service
ユーザーガイド (API Version 2014-10-31)

Amazon RDS リソースへのアクセス権限の管理の概要

すべての AWS リソースは AWS アカウントによって所有され、となり、リソースの作成またはアクセスは、アクセス権限のポリシーによって管理されます。アカウント管理者は、アクセス権限ポリシーを IAM アイデンティティ (ユーザー、グループ、ロール) にアタッチできます。一部のサービス (AWS Lambda など) では、アクセス権限ポリシーをリソースにアタッチすることもできます。

注記

アカウント管理者 (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、IAM ユーザーガイド の「IAM のベストプラクティス」を参照してください。

アクセス権限を付与する場合、アクセス権限を取得するユーザー、取得するアクセス権限の対象となるリソース、およびそれらのリソースに対して許可される特定のアクションを決定します。

Amazon RDS リソースおよびオペレーション

Amazon RDS では、プライマリリソースは DB インスタンスです。Amazon RDS は、DB スナップショットパラメータグループイベントディスクリプションなどのプライマリリソースとともに使用できるその他のリソースをサポートします。これらはサブリソースと呼ばれます。

これらのリソースとサブリソースには、次の表に示すとおり、一意の Amazon リソースネーム (ARN) が関連付けられています。

リソースタイプ ARN 形式

DB インスタンス、リードレプリカ、リザーブド DB インスタンス

arn:aws:rds:region:account-id:db:db-instance-name

DB クラスター

arn:aws:rds:region:account-id:cluster:db-cluster-name

DB スナップショット

arn:aws:rds:region:account-id:snapshot:snapshot-name

DB クラスタースナップショット

arn:aws:rds:region:account-id:cluster-snapshot:cluster-snapshot-name

DB オプショングループ

arn:aws:rds:region:account-id:og:option-group-name

DB パラメータグループ

arn:aws:rds:region:account-id:pg:parameter-group-name

DB クラスターのパラメータグループ

arn:aws:rds:region:account-id:cluster-pg:cluster-parameter-group-name

DB セキュリティグループ

arn:aws:rds:region:account-id:secgrp:security-group-name

DB サブネットグループ

arn:aws:rds:region:account-id:subgrp:subnet-group-name

イベントサブスクリプション

arn:aws:rds:region:account-id:es:subscription-name

Amazon RDS には、Amazon RDS リソースを操作するための一連のオペレーションが用意されています。可能なオペレーションのリストについては、「アクション」を参照してください。

リソース所有権について

リソース所有者は、リソースを作成した AWS アカウントです。つまり、リソース所有者は、リソースの作成リクエストを認証するプリンシパルエンティティ (ルートアカウント、IAM ユーザー、または IAM ロール) の AWS アカウントです。以下の例では、このしくみを示しています。

  • AWS アカウントのルートアカウントの認証情報を使用して、DB インスタンスなどの RDS リソースを作成する場合、AWS アカウントは RDS リソースの所有者です。

  • AWS アカウントに IAM ユーザーを作成し、そのユーザーに RDS リソースを作成するためのアクセス権限を付与する場合、そのユーザーは RDS リソースを作成できます。ただし、ユーザーが属する AWS アカウントは RDS リソースを所有しているとします。

  • RDS リソースを作成するためのアクセス権限を持つ AWS アカウントに IAM ロールを作成する場合は、ロールを引き受けることのできるいずれのユーザーも RDS リソースを作成できます。ロールが属する AWS アカウントは RDS リソースを所有しているとします。

リソースへのアクセスの管理

アクセスポリシーでは、誰が何にアクセスできるかを記述します。以下のセクションで、アクセス権限のポリシーを作成するために使用可能なオプションについて説明します。

注記

このセクションでは、Amazon RDS のコンテキストでの IAM の使用について説明します。これは、IAM サービスに関する詳細情報を取得できません。完全な IAM ドキュメントについては、「IAM とは?」 (IAM ユーザーガイド ) を参照してください。IAM ポリシー構文の詳細および説明については、IAM ユーザーガイド の「AWS IAM ポリシーリファレンス」を参照してください。

IAM アイデンティティにアタッチされたポリシーはアイデンティティベースのポリシー (IAM ポリシー) と呼ばれ、リソースにアタッチされたポリシーはリソースベースのポリシーと呼ばれます。Amazon RDS では、アイデンティティベースのポリシー (IAM ポリシー) のみサポートされます。

アイデンティティベースのポリシー (IAM ポリシー)

ポリシーを IAM アイデンティティにアタッチできます。たとえば、次の操作を実行できます。

  • アカウントのユーザーまたはグループにアクセス権限ポリシーをアタッチする – アカウント管理者は、特定のユーザーに関連付けられるアクセス権限ポリシーを使用して、そのユーザーに Amazon RDS リソース (DB インスタンスなど) の作成を許可するアクセス権限を付与することができます。

  • アクセス権限ポリシーをロールにアタッチする (クロスアカウントのアクセス権限を付与) – アイデンティティベースのアクセス権限ポリシーを IAM ロールにアタッチして、クロスアカウントのアクセス権限を付与することができます。たとえば、アカウント A の管理者は、次のように他のまたは AWS にクロスアカウントのアクセス権限を別の AWS アカウント (アカウント B) または AWS サービスに付与するロールを作成することができます。

    1. アカウント A の管理者は、IAM ロールを作成して、アカウント A のリソースに権限を付与するロールに権限ポリシーをアタッチします。

    2. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別するロールに、信頼ポリシーをアタッチします。

    3. アカウント B の管理者は、アカウント B のユーザーにロールを引き受ける権限を委任できるようになります。これにより、アカウント B のユーザーにアカウント A のリソースの作成とアクセスが許可されます。AWS サービスのアクセス権限を付与してロールを引き受けさせたい場合は、信頼ポリシー内のプリンシパルも、AWS サービスのプリンシパルとなることができます。

    IAM を使用したアクセス権限の委任の詳細については、IAM ユーザーガイド の「アクセス管理」を参照してください。

以下は、AWS アカウントでユーザーが DB インスタンスを作成できるようにするポリシーの例です。ポリシーは、test で始める新しい DB インスタンスの名前である必要があります。また、新しい DB インスタンスは、MySQL データベースエンジンと DB インスタンスの db.t2.micro クラスを使用する必要があります。

Copy
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowMySQLTestCreate", "Effect":"Allow", "Action":"rds:CreateDBInstance", "Resource":"arn:aws:rds:us-west-2:123456789012:db:test*", "Condition":{ "StringEquals":{ "rds:DatabaseEngine":"mysql", "rds:DatabaseClass":"db.t2.micro" } } } ] }

Amazon RDS でアイデンティティベースのポリシーを使用する詳細については、「Amazon RDS でアイデンティティベースのポリシー (IAM ポリシー) を使用する」を参照してください。ユーザー、グループ、ロール、アクセス権限の詳細については、「アイデンティティ (ユーザー、グループ、ロール)」 (IAM ユーザーガイド) を参照してください。

リソースベースのポリシー

Amazon S3 などの他のサービスでは、リソースベースのアクセス権限ポリシーもサポートされています。たとえば、ポリシーを S3 バケットにアタッチして、そのバケットに対するアクセス権限を管理できます。Amazon RDS では、リソースベースのポリシーはサポートされていません。 

ポリシー要素の指定 : アクション、効果、リソース、プリンシパル

Amazon RDS リソースごとに (「Amazon RDS リソースおよびオペレーション」を参照)、サービスは一連の API オペレーションを定義します (「アクション」を参照)。これらの API オペレーションを実行するためのアクセス権限を付与するために、Amazon RDS ではポリシーに一連のアクションを定義できます。API オペレーションを実行する場合に、複数のアクションで権限が必要となる場合があることに注意してください。

以下は、基本的なポリシーの要素です。

  • リソース ‐ ポリシーで Amazon Resource Name (ARN) を使用して、ポリシーを適用するリソースを識別します。詳細については、「Amazon RDS リソースおよびオペレーション」を参照してください。

  • アクション – アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識別します。たとえば、rds:DescribeDBInstances 権限は、Amazon RDS DescribeDBInstances オペレーションの実行をユーザーに許可します。

  • 効果 ‐ ユーザーが特定のアクションをリクエストする際の効果を指定します。許可または拒否のいずれかになります。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。

  • プリンシパル ‐ アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、権限 (リソースベースのポリシーにのみ適用) を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。Amazon RDS では、リソースベースのポリシーはサポートされていません。

IAM ポリシーの構文と記述の詳細については、IAM ユーザーガイド の「AWS IAM ポリシーの参照」を参照してください。

すべての Amazon RDS API アクションとそれらが適用されるリソースの表については、「Amazon RDS API のアクセス権限: アクション、リソース、条件リファレンス」を参照してください。

ポリシーでの条件の指定

アクセス権限を付与するとき、アクセスポリシー言語を使用して、ポリシーが有効になる必要がある条件を指定できます。たとえば、特定の日付の後にのみ適用されるポリシーが必要になる場合があります。ポリシー言語での条件の指定の詳細については、IAM ユーザーガイド の「条件」を参照してください。

条件を表すには、あらかじめ定義された条件キーを使用します。AWS 全体の条件キーと RDS 固有のキーがあり、必要に応じて使用できます。AWS 全体を対象とするすべてのキーのリストについては、『IAM ユーザーガイド』の「条件に利用可能なキー」を参照してください。RDS 固有のキーの一覧については、「詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用」を参照してください。