Amazon EFS と RDS for Oracle を統合する IAM アクセス許可の設定 - Amazon Relational Database Service

Amazon EFS と RDS for Oracle を統合する IAM アクセス許可の設定

デフォルトでは、Amazon EFS 統合機能は IAM ロールを使用しません。USE_IAM_ROLE オプション設定は FALSE です。RDS for Oracle と Amazon EFS および IAM ロールを統合するには、DB インスタンスが Amazon EFS ファイルシステムにアクセスするために IAM アクセス許可を持っている必要があります。

ステップ 1: DB インスタンスの IAM ロールを作成し、ポリシーをアタッチする

このステップでは、RDS for Oracle DB インスタンスのロールを作成し、Amazon RDS が EFS ファイルシステムにアクセスできるようにします。

Amazon RDS が EFS ファイルシステムへのアクセスを許可する IAM ロールを作成するには
  1. IAM マネジメントコンソールを開きます。

  2. ナビゲーションペインで [Roles (ロール) ] を選択します。

  3. [Create role] を選択します。

  4. [AWS のサービス] で、[RDS] を選択します。

  5. [ユースケースの選択] で、[RDS - Add Role to Database (ロールをデータベースに追加する)] を選択します。

  6. [Next] を選択します。

  7. アクセス許可ポリシーを追加しないでください。[Next] を選択します。

  8. [ロール名] を IAM ロールの名前 (例: rds-efs-integration-role) に設定します。オプションで [Description] 値を追加することもできます。

  9. [ロールの作成] を選択します。

サービスのアクセス許可を特定のリソースに限定するには、リソースベースの信頼関係で aws:SourceArn および aws:SourceAccount のグローバル条件コンテキストキーを使用することをお勧めします。これは、混乱した使節の問題に対する最も効果的な保護方法です。

両方のグローバル条件コンテキストキーを使用し、aws:SourceArn 値にアカウント ID を含めます。この場合は、aws:SourceAccount 値と aws:SourceArn 値のアカウントは、同じステートメントで使用する場合、同じアカウント ID を使用する必要があります。

  • 単一リソースに対するクロスサービスアクセスが必要な場合は aws:SourceArn を使用します。

  • そのアカウント内の任意のリソースをクロスサービス使用に関連付けることを許可する場合、aws:SourceAccountを使用します。

信頼関係では、aws:SourceArn グローバル条件コンテキストキーに、必ず、ロールにアクセスするリソースの完全な Amazon リソースネーム (ARN) を使用します。

次の AWS CLI コマンドでは、この目的で rds-efs-integration-role という名前のロールを作成します。

Linux、macOS、Unix の場合:

aws iam create-role \ --role-name rds-efs-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": my_account_ID, "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname" } } } ] }'

Windows の場合:

aws iam create-role ^ --role-name rds-efs-integration-role ^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": my_account_ID, "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname" } } } ] }'

詳細については、IAM ユーザーガイドの「IAM ユーザーにアクセス許可を委任するロールの作成」を参照してください。

ステップ 2: Amazon EFS ファイルシステムのファイルシステムポリシーを作成します。

このステップでは、EFS ファイルシステムのファイルシステムポリシーを作成します。

EFS ファイルシステムポリシーを作成または編集するには
  1. EFS 管理コンソールを開きます。

  2. [File Systems (ファイルシステム)] を選択します。

  3. [File systems (ファイルシステム)] ページで、ファイルシステムポリシーを編集または作成する対象のファイルシステムを選択します。そのファイルシステムの詳細ページが表示されます。

  4. [File system policy] (ファイルシステムポリシー) タブを選択します。

    ポリシーが空の場合は、デフォルトの EFS ファイルシステムポリシーが使用されます。詳細については、Amazon Elastic File System ユーザーガイドの「EFS ファイルシステムポリシー」を参照してください。

  5. [編集] を選択します。[File system policy (ファイルシステムポリシー)] ページが表示されます。

  6. [Policy editor] (ポリシーエディタ) で次のようなポリシーを入力し、[Save] (保存) を選択します。

    { "Version": "2012-10-17", "Id": "ExamplePolicy01", "Statement": [ { "Sid": "ExampleStatement01", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/rds-efs-integration-role" }, "Action": [ "elasticfilesystem:ClientMount", "elasticfilesystem:ClientWrite", "elasticfilesystem:ClientRootAccess" ], "Resource": "arn:aws:elasticfilesystem:us-east-1:123456789012:file-system/fs-1234567890abcdef0" } ] }

ステップ 3: IAM ロールを RDS for Oracle DB インスタンスに関連付ける

このステップでは、IAM ロールを DB インスタンスに関連付けます。以下の要件に注意してください。

  • 必須の Amazon EFS アクセス許可ポリシーがアタッチされた IAM ロールへのアクセスが許可されている必要があります。

  • RDS for Oracle DB インスタンスには、一度に 1 つの IAM ロールのみを関連付けることができます。

  • インスタンスのステータスは [Available] (使用可能) である必要があります。

詳細については、Amazon Elastic File System ユーザーガイドの「Amazon EFS の ID とアクセス管理」を参照してください。

IAM ロールを RDS for Oracle DB インスタンスに関連付けるには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. [データベース] をクリックします。

  3. データベースインスタンスが使用できない場合は、[Actions (アクション)]、[Start (スタート)] の順に選択します。インスタンスのステータスに [Started (スタート済み)] と表示されたら、次のステップに進みます。

  4. 詳細を表示する Oracle DB インスタンスの名前を選択します。

  5. 接続性とセキュリティ」 タブで、ページ下部のIAM ロールを管理する セクションまでスクロールダウンします。

  6. IAM ロールをこのインスタンスに追加するセクションに追加するロールを選択します。

  7. [Feature] (機能) で、[EFS_INTEGRATION] (EFS 統合) を選択します。

  8. [Add role] を選択します。

以下の AWS CLI コマンドでは、mydbinstance という名前の Oracle DB インスタンスにこのロールを追加します。

Linux、macOS、Unix の場合:

aws rds add-role-to-db-instance \ --db-instance-identifier mydbinstance \ --feature-name EFS_INTEGRATION \ --role-arn your-role-arn

Windows の場合:

aws rds add-role-to-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name EFS_INTEGRATION ^ --role-arn your-role-arn

your-role-arn を、以前のステップで書き留めたロール ARN に置き換えます。EFS_INTEGRATION オプションには --feature-name が指定されている必要があります。