Amazon RDS Custom for Oracle の環境設定 - Amazon Relational Database Service

Amazon RDS Custom for Oracle の環境設定

Amazon RDS Custom for Oracle DB インスタンスを作成する前に、次のタスクを実行します。

ステップ 1: 対称暗号化 AWS KMS キーを作成または再利用する

カスタマーマネージドキーは、お客様が作成、所有、管理している AWS アカウントの AWS KMS keys です。RDS Custom にはカスタマーマネージド対称暗号化 KMS キーが必要です。RDS Custom for Oracle DB インスタンス作成の際、KMS キー 識別子を指定します。(詳しくは、「Amazon RDS Custom for Oracle DB インスタンスの設定」を参照してください。)

次のオプションがあります。

  • AWS アカウント に既存のカスタマーマネージド KMS キーがある場合は、RDS Custom で使用できます。これ以上の操作は不要です。

  • RDS Custom エンジンのカスタマーマネージド対称暗号化 KMS キーを既に作成している場合は、同じ KMS キーを再利用できます。これ以上の操作は不要です。

  • アカウントに既存のカスタマーマネージド対称暗号化 KMS キーがない場合は、AWS Key Management Service デベロッパーガイドの「キーの作成」の手順に従って KMS キーを作成します。

  • CEV または RDS Custom DB インスタンスを作成していて、KMS キーが別の AWS アカウント にある場合は、必ず AWS CLI を使用してください。クロスアカウントの KMS キーでは AWS コンソールを使用できません。

重要

RDS Custom はAWSマネージド KMS キーに対応していません。

対称暗号化キーが、IAM インスタンスプロファイルの AWS Identity and Access Management (IAM) ロールに kms:Decrypt および kms:GenerateDataKey オペレーションへのアクセスを許可していることを確認してください。アカウントに新しい対称暗号化キーがある場合、変更は必要ありません。それ以外の場合は、対称暗号化キーのポリシーがこれらのオペレーションへのアクセスを許可していることを確認してください。

詳細については、「ステップ 4: RDS Custom for Oracle 用に IAM を設定する」を参照してください。

RDS Custom for Oracle の IAM の設定の詳細については、「ステップ 4: RDS Custom for Oracle 用に IAM を設定する」を参照してください。

ステップ 2: AWS CLI をダウンロードしてインストールする

AWSは、RDS Custom 機能を使用するためのコマンドラインインターフェイスを提供します。AWS CLI のバージョン 1 またはバージョン 2 を使用できます。

AWS CLI のダウンロードおよびインストールについては、「AWS CLI の最新バージョンを使用してインストールまたは更新を行う」を参照してください。

次のいずれかに該当する場合には、この手順をスキップします。

  • AWS Management Console からのみ RDS Custom にアクセスする予定です。

  • Amazon RDS または異なる RDS Custom エンジンの AWS CLI を既にダウンロードしています。

ステップ 3: RDS Custom for Oracle の CloudFormation テンプレートを抽出する

セットアップを簡素化するために、AWS CloudFormation テンプレートを使用して CloudFormation スタックを作成することを強くお勧めします。IAM と VPC を手動で設定する場合、このステップは省略します。

ステップ 3a: CloudFormation テンプレートファイルをダウンロードする

CloudFormation テンプレートとは、スタックを構成する AWS リソースの宣言です。テンプレートは JSON ファイルとして保存されます。

CloudFormation テンプレートファイルをダウンロードするには
  1. リンクのコンテキスト (右クリック) メニューから[custom-oracle-iam.zip] を開き、[Save Link As] (名前を付けてリンクを保存) を選択します。

  2. ファイルをコンピュータに保存します。

  3. リンクの [custom-vpc.zip] に対して前のステップを繰り返します。

    VPC を RDS Custom 用に既に設定している場合は、このステップをスキップします。

ステップ 3b: custom-oracle-iam.json を抽出する

ダウンロードした custom-oracle-iam.zip ファイルを開き、ファイル custom-oracle-iam.json を抽出します。ファイルの先頭は次のようになります。

{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "EncryptionKey": { "Type": "String", "Default": "*", "Description": "KMS Key ARN for encryption of data managed by RDS Custom and by DB Instances." } }, "Resources": { "RDSCustomInstanceServiceRole": { "Type": "AWS::IAM::Role", "Properties": { "RoleName": { "Fn::Sub": "AWSRDSCustomInstanceRole-${AWS::Region}" }, "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] },...

ステップ 3c: custom-vpc.json を抽出する

注記

RDS Custom for Oracle の VPC が既に設定されている場合、このステップは省略します。詳細については、「RDS Custom for Oracle 用に VPC を手動で設定する」を参照してください。

ダウンロードした custom-vpc.zip ファイルを開き、ファイル custom-vpc.json を抽出します。ファイルの先頭は次のようになります。

{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "PrivateVpc": { "Type": "AWS::EC2::VPC::Id", "Description": "Private VPC Id to use for RDS Custom DB Instances" }, "PrivateSubnets": { "Type": "List<AWS::EC2::Subnet::Id>", "Description": "Private Subnets to use for RDS Custom DB Instances" }, "RouteTable": { "Type": "String", "Description": "Route Table that must be associated with the PrivateSubnets and used by S3 VPC Endpoint", "AllowedPattern": "rtb-[0-9a-z]+" } }, "Resources": { "DBSubnetGroup": { "Type": "AWS::RDS::DBSubnetGroup", "Properties": { "DBSubnetGroupName": "rds-custom-private", "DBSubnetGroupDescription": "RDS Custom Private Network", "SubnetIds": { "Ref": "PrivateSubnets" } } },...

ステップ 4: RDS Custom for Oracle 用に IAM を設定する

IAM ロールまたは IAM ユーザー (IAM エンティティと呼ばれます) を使用して、コンソールまたは AWS CLI を使用して RDS Custom DB インスタンスを作成します。この IAM エンティティには、インスタンス作成に必要なアクセス許可が付与されている必要があります。

IAM は、CloudFormation または手動ステップを使用して設定できます。

重要

AWS CloudFormation を使用して RDS Custom for Oracle 環境を設定することを強くお勧めします。この方法は、最も簡単でエラーが起こりにくいものです。

CloudFormation を使用して IAM を設定する

IAM 用の CloudFormation テンプレートを使用すると、次の必要なリソースが作成されます。

  • AWSRDSCustomInstanceProfile-region という名前のインスタンスプロファイル

  • AWSRDSCustomInstanceRole-region という名前のサービスロール

  • サービスロールにアタッチしている AWSRDSCustomIamRolePolicy という名前のアクセスポリシー

CloudFormation を使用して IAM を設定するには
  1. CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  2. 「スタックの作成」 ウィザードを起動し、スタックの作成を選択します。

  3. [Create stack] (スタックの作成) ページで、次の手順を実行します。

    1. [Prepare template] (テンプレートの準備) の [Template is ready] (テンプレートの準備が完了しました) を選択します。

    2. [テンプレートソース] で、[テンプレートファイルのアップロード] を選択します。

    3. [ファイルを選択] に移動して、[custom-oracle-iam.json] を選択します。

    4. [次へ] をクリックします。

  4. [スタックの詳細を指定] ページで、以下を実行します。

    1. [スタック名] に「custom-oracle-iam」と入力します。

    2. [次へ] をクリックします。

  5. [スタックオプションの設定] ページで、[次へ] をクリックします。

  6. [Review custom-oracle-iam] (カスタムオラクル-IAM のレビュー) ページで、以下の作業を行います。

    1. [AWS CloudFormation がカスタム名で IAM リソースを作成する可能性があることに同意する] チェックボックスを選択します。

    2. [Submit] (送信) を選択します。

    CloudFormation は、 RDS Custom for Oracle が必要とする IAM ロールを作成します。左側のパネルで、[custom-oracle-iam][CREATE_COMPLETE] と表示されたら、次のステップに進みます。

  7. 左のパネルで、[custom-oracle-iam] を選択します。右のパネルで、以下の操作を行います。

    1. [スタック情報] を選択します。スタックの ID は、arn:aws:cloudformation:region:account-no:stack/custom-oracle-iam/identifier という形式です。

    2. [リソース] をクリックします。次のように表示されます。

      • AWSRDSCustomInstanceProfile-region という名前のインスタンスプロファイル

      • AWSRDSCustomInstanceRole-region という名前のサービスロール

      RDS Custom DB インスタンスを作成するときは、インスタンスプロファイル ID を指定する必要があります。

IAM ロールおよびインスタンスプロファイルをマニュアルで作成する

CloudFormation を使用すると、設定が最も簡単になります。ただし、IAM は手動で設定することもできます。手動セットアップの場合は、以下を実行します。

ステップ 1: AWSRDSCustomInstanceRoleForRdsCustomInstance IAMロールを作成する

このステップでは、命名形式 AWSRDSCustomInstanceRole-region を使用してロールを作成します。信頼ポリシーを使用して、Amazon EC2 がロールを引き受けることができます。次の例では、DB インスタンスを作成する環境変数 $REGION を AWS リージョン に設定していることを前提としています。

aws iam create-role \ --role-name AWSRDSCustomInstanceRole-$REGION \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }'

ステップ 2: AWSRDSCustomInstanceRoleForRdsCustomInstance にアクセスポリシーを追加します。

IAM ロールにインラインポリシーを埋め込むと、そのインラインポリシーはロールのアクセス (アクセス権) ポリシーの一部として使用されます。Amazon EC2 にメッセージの送受信やさまざまなアクションを許可するAWSRDSCustomIamRolePolicyポリシーを作成します。

次の例では、AWSRDSCustomIamRolePolicyという名前のアクセスポリシーを作成し、IAM ロールAWSRDSCustomInstanceRole-regionに追加します。この例では、次の環境変数を設定していることを前提としています。

$REGION

この変数を DB インスタンスを作成する予定の AWS リージョン に設定します。

$ACCOUNT_ID

この変数を自分の AWS アカウント 番号に設定します。

$KMS_KEY

この変数を、RDS Custom DB インスタンスに使用する AWS KMS key の Amazon リソースネーム (ARN) に設定します。複数の KMS キーを指定するには、ステートメントID (Sid) 11 のResourcesセクションに追加してください。

aws iam put-role-policy \ --role-name AWSRDSCustomInstanceRole-$REGION \ --policy-name AWSRDSCustomIamRolePolicy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Action": [ "ssm:DescribeAssociation", "ssm:GetDeployablePatchSnapshotForInstance", "ssm:GetDocument", "ssm:DescribeDocument", "ssm:GetManifest", "ssm:GetParameter", "ssm:GetParameters", "ssm:ListAssociations", "ssm:ListInstanceAssociations", "ssm:PutInventory", "ssm:PutComplianceItems", "ssm:PutConfigurePackageResult", "ssm:UpdateAssociationStatus", "ssm:UpdateInstanceAssociationStatus", "ssm:UpdateInstanceInformation", "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation", "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": [ "*" ] }, { "Sid": "2", "Effect": "Allow", "Action": [ "ec2messages:AcknowledgeMessage", "ec2messages:DeleteMessage", "ec2messages:FailMessage", "ec2messages:GetEndpoint", "ec2messages:GetMessages", "ec2messages:SendReply" ], "Resource": [ "*" ] }, { "Sid": "3", "Effect": "Allow", "Action": [ "logs:PutRetentionPolicy", "logs:PutLogEvents", "logs:DescribeLogStreams", "logs:DescribeLogGroups", "logs:CreateLogStream", "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:'$REGION':'$ACCOUNT_ID':log-group:rds-custom-instance*" ] }, { "Sid": "4", "Effect": "Allow", "Action": [ "s3:putObject", "s3:getObject", "s3:getObjectVersion" ], "Resource": [ "arn:aws:s3:::do-not-delete-rds-custom-*/*" ] }, { "Sid": "5", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "cloudwatch:namespace": [ "RDSCustomForOracle/Agent" ] } } }, { "Sid": "6", "Effect": "Allow", "Action": [ "events:PutEvents" ], "Resource": [ "*" ] }, { "Sid": "7", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:'$REGION':'$ACCOUNT_ID':secret:do-not-delete-rds-custom-*" ] }, { "Sid": "8", "Effect": "Allow", "Action": [ "s3:ListBucketVersions" ], "Resource": [ "arn:aws:s3:::do-not-delete-rds-custom-*" ] }, { "Sid": "9", "Effect": "Allow", "Action": "ec2:CreateSnapshots", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/AWSRDSCustom": "custom-oracle" } } }, { "Sid": "10", "Effect": "Allow", "Action": "ec2:CreateSnapshots", "Resource": [ "arn:aws:ec2:*::snapshot/*" ] }, { "Sid": "11", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:'$REGION':'$ACCOUNT_ID':key/'$KMS_KEY'" ] }, { "Sid": "12", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "*", "Condition": { "StringLike": { "ec2:CreateAction": [ "CreateSnapshots" ] } } } ] }'

ステップ 3: RDS Custom インスタンスプロファイル AWSRDSCustomInstanceProfile を作成する

インスタンスプロファイルは、1 つの IAM ロールを含むコンテナです。RDS Custom はインスタンスプロファイルを使用してインスタンスにロールを渡します。

CLI を使用してロールを作成する場合、ロールとインスタンスプロファイルを別個のアクションとして作成します。名前は異なる可能性があります。IAM インスタンスプロファイルを次のように作成し、AWSRDSCustomInstanceProfile-region という形式を使用して名前を付けます。次の例では、DB インスタンスを作成する環境変数 $REGION を AWS リージョン に設定していることを前提としています。

aws iam create-instance-profile \ --instance-profile-name AWSRDSCustomInstanceProfile-$REGION

ステップ 4: AWSRDSCustomInstanceRoleForRdsCustomInstance を AWSRDSCustomInstanceProfile に追加する

以前に作成したインスタンスプロファイルに IAM ロールを追加します。次の例では、DB インスタンスを作成する環境変数 $REGION を AWS リージョン に設定していることを前提としています。

aws iam add-role-to-instance-profile \ --instance-profile-name AWSRDSCustomInstanceProfile-$REGION \ --role-name AWSRDSCustomInstanceRole-$REGION

ステップ 5: IAM ユーザーまたはロールに必要なアクセス許可を付与する

CEV または RDS Custom DB インスタンスを作成する IAM プリンシパル (ユーザーまたはロール) に、次のいずれかのポリシーがあることを確認してください。

  • AdministratorAccess ポリシー

  • Amazon S3 と AWS KMS、CEV の作成、および DB インスタンスの作成に必要なアクセス許可を含む AmazonRDSFullAccess ポリシー。

Amazon S3 と AWS KMS に必要な IAM アクセス許可

CEV または RDS Custom for Oracle DB インスタンスを作成するには、IAM プリンシパルで Amazon S3 および AWS KMS にアクセスする必要があります。次のサンプル JSON ポリシーにより、必要なアクセス許可が付与されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateS3Bucket", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:PutBucketPolicy", "s3:PutBucketObjectLockConfiguration", "s3:PutBucketVersioning" ], "Resource": "arn:aws:s3:::do-not-delete-rds-custom-*" }, { "Sid": "CreateKmsGrant", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }

kms:CreateGrant アクセス許可の詳細については、「AWS KMS key 管理」を参照してください。

CEV を作成するために必要な IAM アクセス許可

CEV を作成する場合、IAM プリンシパルで次の追加のアクセス許可が必要です。

s3:GetObjectAcl s3:GetObject s3:GetObjectTagging s3:ListBucket mediaimport:CreateDatabaseBinarySnapshot

次のサンプル JSON ポリシーにより、バケット my-custom-installation-files とその内容へのアクセスに必要な追加のアクセス許可が付与されます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToS3MediaBucket", "Effect": "Allow", "Action": [ "s3:GetObjectAcl", "s3:GetObject", "s3:GetObjectTagging", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-custom-installation-files", "arn:aws:s3:::my-custom-installation-files/*" ] }, { "Sid": "PermissionForByom", "Effect": "Allow", "Action": [ "mediaimport:CreateDatabaseBinarySnapshot" ], "Resource": "*" } ] }

S3 バケットポリシーを使用して、Amazon S3 への同様のアクセス許可を発信者のアカウントに付与できます。

CEV から DB インスタンスを作成するために必要な IAM アクセス許可

既存の CEV から RDS Custom for Oracle DB インスタンスを作成する場合、IAM プリンシパルで次の追加のアクセス許可が必要です。

iam:SimulatePrincipalPolicy cloudtrail:CreateTrail cloudtrail:StartLogging

次のサンプル JSON ポリシーは、IAM ロールの検証や情報を AWS CloudTrail に記録するために必要なアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ValidateIamRole", "Effect": "Allow", "Action": "iam:SimulatePrincipalPolicy", "Resource": "*" }, { "Sid": "CreateCloudTrail", "Effect": "Allow", "Action": [ "cloudtrail:CreateTrail", "cloudtrail:StartLogging" ], "Resource": "arn:aws:cloudtrail:*:*:trail/do-not-delete-rds-custom-*" } ] }

ステップ 6: RDS Custom for Oracle 用に VPC を設定する

RDS Custom DB インスタンスは、Amazon EC2 インスタンスまたは Amazon RDS インスタンスと同様に、Amazon VPC サービスに基づく Virtual Private Cloud (VPC) にあります。独自の VPC を提供して設定します。RDS Custom for SQL Server とは異なり、RDS Custom for Oracle はアクセスコントロールリストやセキュリティグループを作成しません。独自のセキュリティグループ、サブネット、ルートテーブルをアタッチする必要があります。

仮想プライベートクラウド (VPC) は、CloudFormation または手動プロセスを使用して設定できます。

重要

AWS CloudFormation を使用して RDS Custom for Oracle 環境を設定することを強くお勧めします。この方法は、最も簡単でエラーが起こりにくいものです。

CloudFormation を使用して VPC を設定する (推奨)

VPC を異なる RDS Custom エンジン用に既に設定し、既存の VPC を再利用する場合は、このステップをスキップします。このセクションでは、以下を想定しています。

  • 既に CloudFormation を使用して IAM インスタンスプロファイルとロールを作成しました。

  • ルートテーブル ID はわかっています。

    DB インスタンスがプライベートであるためには、プライベートサブネットに存在する必要があります。サブネットをプライベートにするには、デフォルトのインターネットゲートウェイを持つルートテーブルに関連付けてはいけません。詳細については、Amazon VPC ユーザーガイドの「ルートテーブルを設定する」を参照してください。

VPC 用の CloudFormation テンプレートを使用すると、以下のリソースが作成されます。

  • プライベート VPC

  • rds-custom-private という名前のサブネットグループ

  • DB インスタンスが依存 AWS のサービス と通信するために使用する、以下の VPC エンドポイント。

    • com.amazonaws.region.ec2messages

    • com.amazonaws.region.events

    • com.amazonaws.region.logs

    • com.amazonaws.region.monitoring

    • com.amazonaws.region.s3

    • com.amazonaws.region.secretsmanager

    • com.amazonaws.region.ssm

    • com.amazonaws.region.ssmmessages

    注記

    既存のアカウントで複雑なネットワーク設定を行う場合、アクセスがまだ存在しない場合は、依存サービスへのアクセスを手動で設定することをお勧めします。詳細については、「VPC が依存 AWS のサービスにアクセスできることを確認する」を参照してください。

CloudFormation を使用して VPC を設定するには
  1. CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  2. [スタックの作成] ウィザードを起動し、[スタックの作成] を選択し、[新しいリソースを使用 (標準)] を選択します。

  3. [Create stack] (スタックの作成) ページで、次の手順を実行します。

    1. [Prepare template] (テンプレートの準備) の [Template is ready] (テンプレートの準備が完了しました) を選択します。

    2. [テンプレートソース] で、[テンプレートファイルのアップロード] を選択します。

    3. ファイルを選択で、custom-vpc.jsonに移動して選択します。

    4. [次へ] をクリックします。

  4. [スタックの詳細を指定] ページで、以下を実行します。

    1. [スタック名] に「custom-vpc」と入力します。

    2. パラメータで、RDS Custom DB インスタンスに使用するプライベートサブネットを選択します。

    3. RDS Custom DB インスタンスに使用するプライベート VPC ID を選択します。

    4. プライベートサブネットに関連付けられているメインルートテーブルを入力します。

    5. [次へ] をクリックします。

  5. [スタックオプションの設定] ページで、[次へ] をクリックします。

  6. [確認] ページで [送信] を選択します。

    CloudFormation は、プライベート VPC を設定します。左側のパネルで、[custom-vpc][CREATE_COMPLETE] と表示されたら、次のステップに進みます。

  7. (オプション) VPC の詳細を確認します。[スタック] ペインで、[custom-vpc] を選択します。右のペインで、以下の操作を行います。

    1. [スタック情報] を選択します。スタックの ID は、arn:aws:cloudformation:region:account-no:stack/custom-vpc/identifier という形式です。

    2. [リソース] をクリックします。rds-custom-private という名前のサブネットグループと、vpce-stringという命名形式を使用する VPC エンドポイントがいくつか表示されるはずです。各エンドポイントは、RDS Custom が通信する必要のある AWS のサービス に対応しています。詳細については、「VPC が依存 AWS のサービスにアクセスできることを確認する」を参照してください。

    3. [Parameters] (パラメータ) を選択します。スタックを作成したときに指定したプライベートサブネット、プライベート VPC、ルートテーブルが表示されます。DB インスタンスを作成するときは、VPC ID とサブネットグループを指定する必要があります。

RDS Custom for Oracle 用に VPC を手動で設定する

AWS CloudFormation で VPC の作成を自動化する代わりに、VPC を手動で設定できます。このオプションは、既存のリソースを使用する複雑なネットワーク設定がある場合に最適です。

VPC が依存 AWS のサービスにアクセスできることを確認する

RDS Custom は DB インスタンスから他の AWS のサービス に通信を送信します。RDS Custom for Oracle DB インスタンスを作成するサブネットから以下のサービスにアクセスできることを確認します。

  • Amazon CloudWatch

  • Amazon CloudWatch Logs

  • Amazon CloudWatch Events

  • Amazon EC2

  • Amazon EventBridge

  • Amazon S3

  • AWS Secrets Manager

  • AWS Systems Manager

前述の AWS のサービス へのアクセスが現在存在しない場合は、以下の VPC エンドポイントを設定します。

  • com.amazonaws.region.ec2messages

  • com.amazonaws.region.events

  • com.amazonaws.region.logs

  • com.amazonaws.region.monitoring

  • com.amazonaws.region.s3

  • com.amazonaws.region.secretsmanager

  • com.amazonaws.region.ssmmessages

RDS Custom は必要なサービスと通信できない場合、次のイベントを公開します。

Database instance in incompatible-network. SSM Agent connection not available. Amazon RDS can't connect to the dependent AWS services.

incompatible-network エラーを避けるため、RDS Custom DB インスタンスと AWS のサービス 間の通信に関与している VPC コンポーネントが次の要件を満たしていることを確認します。

  • DB インスタンスは、ポート 443 で他の AWS のサービス へのアウトバウンド接続を行うことができます。

  • VPC は、RDS Custom DB インスタンスから発信されるリクエストへの受信レスポンスを許可します。

  • RDS Custom は、各 AWS のサービス に対してエンドポイントのドメイン名を正しく解決できます。

RDS Custom は、その自動化のために AWS Systems Manager 接続に依存しています。VPC エンドポイントの設定方法については、「Systems Manager 用の VPC エンドポイントを作成する」を参照してください。各リージョンのエンドポイントのリストについては、Amazon Web Services 全般的なリファレンスの「AWS Systems Manager endpoints and quotas」を参照してください。

異なる RDS Custom DB エンジン用に VPC を既に設定している場合は、その VPC を再利用してこのプロセスをスキップできます。

インスタンスメタデータサービスの設定

以下を実行して、インスタンスが に接続できることを確認します。

  • インスタンスメタデータにアクセスするために、Instance Metadata Service のバージョン 2 (IMDSv2) を使用します。

  • ポート 80 (HTTP) を介して IMDS リンク IP アドレスへのアウトバウンド通信を許可します。

  • http://169.254.169.254からのインスタンスメタデータのリクエスト、IMDSv2 のリンクです。

詳細については、Linux インスタンス用の Amazon EC2 ユーザーガイドのIMDSv2 の使用」を参照してください。

RDS Custom for Oracle オートメーションでは、基盤となる Amazon EC2 インスタンスにHttpTokens=enabledを設定し、デフォルトで IMDSv2 を使用しています。ただし、必要に応じて IMDSv1 を使用することもできます。詳細については、Linux インスタンス Amazon EC2 ユーザーガイドの「インスタンスメタデータオプションの設定」を参照してください。