AWS Database Migration Service (AWS DMS) タスクのソースエンドポイントまたはターゲットエンドポイントとして Amazon Simple Storage Service (Amazon S3) を使用しています。エンドポイントの接続テストに失敗したため、エラーメッセージが表示されました。
簡単な説明
Amazon S3 エンドポイントを使用している AWS Identity and Access Management (IAM) ロールに適切な許可が設定されている必要があります。適切な権限を持っていない場合は、次のいずれかのエントリが表示されます。
メッセージ:
- エンドポイントのテストに失敗: アプリケーションステータス: 1020912、アプリケーションメッセージ: S3 エンドポイントへの接続に失敗しました。アクセスが拒否されました。
- エンドポイントのテストに失敗: アプリケーションステータス: 1020912、アプリケーションメッセージ: バケット wan-dms のリストに失敗しました。データベースへの接続に失敗しました。アプリケーション詳細メッセージ: バケット wan-dms の表示に失敗しました。AWS バケットの表示に失敗しました。表示バケットが例外で失敗しました。「AccessDenied」、メッセージ「アクセスが拒否されました」、エラータイプ「15」。AWS でバケットのリストを取得できませんでした。再試行不可能なエラー: アクセスが拒否されました
- エンドポイントのテストに失敗: アプリケーションステータス: 1020912、アプリケーションメッセージ: データベースへの接続に失敗しました。
- エラーの詳細: [message=putDatabase 呼び出しに失敗しました、errType=ERROR_RESPONSE、status=1020414、errMessage= データベースへの接続に失敗しました、errDetails=]
解決方法
**注意:**Amazon S3 を AWS DMS のソースまたはターゲットとして使用する場合は、以下の記事を必ず確認してください。
これらのエラーを解決するには、Amazon S3 エンドポイントにアクセスするために必要な最小限の IAM アクセス許可を付与します。Amazon S3 のソースエンドポイントとターゲットエンドポイントには、AWS DMS の異なる最小アクセス許可があります。
Amazon S3 ソースエンドポイントの IAM ポリシーの次の例を参照してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::awsexamplebucket",
"arn:aws:s3:::awsexamplebucket/*"
]
}
]
}
注: awsexamplebucket を自分のバケット名に置き換えます。
ターゲットエンドポイントとしての Amazon S3 の IAM ポリシーの次の例を参照してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:DeleteObject",
"s3:PutObjectTagging"
],
"Resource": [
"arn:aws:s3:::awsexamplebucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::awsexamplebucket"
]
}
]
}
注: awsexamplebucket を自分のバケット名に置き換えます。
権限エラーのトラブルシューティング
1. IAM ロールに、Amazon S3 エンドポイントへのアクセスに必要な最小限のアクセス許可があることを確認します。
2. Amazon S3 エンドポイントに指定されたバケット名が IAM ロールで許可されているリソースと一致することを確認します。例えば、IAM ロールでは、前のサンプルポリシーの awsexamplebucket など、1 つのバケットへのアクセスのみが許可されます。ただし、Amazon S3 エンドポイントの [Bucket name] (バケット名) に awsexamplebucket2 が指定されている場合、テスト接続は失敗します。
3. dms.amazonaws.com が、IAM ロールに関連付けられた信頼できるエンティティであることを確認します。詳細については、「既存ロールの信頼関係の編集」および AWS DMS の次の信頼ポリシーの例を参照してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "dms.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
4. AWS Organizations を使用する場合、使用する IAM ロールが Amazon S3 へのアクセスを許可する組織の一部であることを確認します。組織がアクセスを許可していない場合、AWS DMS はその IAM ロールを使用して Amazon S3 エンドポイントに接続できません。これは、ロールに必要なすべての権限を持っている場合でも当てはまります。組織がアクセスを許可していない場合は、アカウント管理者に問い合わせて、組織への Amazon S3 アクセスを許可するよう依頼してください。
5. レプリケーションインスタンスのバージョンが 3.4.7 以上の場合は、次のいずれかのアクションを実行してください。
レプリケーションインスタンスのサブネットをパブリックにルーティングできるようにします。AWS DMS レプリケーションインスタンスによって使用される VPC へのインターネットゲートウェイ (IGW) ルートを追加します。
- または -
VPC エンドポイントを作成して、レプリケーションインスタンスが AWS DMS によって使用されるすべてのソースエンドポイントとターゲットエンドポイントにアクセスできるようにします。詳細については、「Preparing a migration to AWS DMS versions 3.4.7 and higher」(AWS DMS バージョン 3.4.7 以降への移行の準備) を参照してください。
関連情報
AWS DMS エンドポイントの接続エラーをトラブルシューティングする方法を教えてください。