Amazon RDS MySQL から Amazon S3 にスナップショットをエクスポートしようとしていますが、エラーが表示されています。なぜこのようなことが起こるのですか?

所要時間3分
0

Amazon Relational Database Service (Amazon RDS) MySQL インスタンスから Amazon Simple Storage Service (Amazon S3) バケットにスナップショットをエクスポートしようとしています。ただし、エラーが表示されるか、オプションが使用できません。

簡単な説明

DB スナップショットの Amazon RDS から Amazon S3 へのエクスポートは、次の理由で失敗することがあります。

  • AWS Identity Access Management (IAM) ロールとポリシーの設定ミス
  • AWS KMS キーチェックの失敗
  • エクスポートタスクが [STARTING] (開始中) でスタックしている
  • アクセス拒否エラー
  • KMSKeyNotAccessibleFault
  • テーブルの許可に関する問題
  • IAM ロールが存在しない

解決方法

注意: AWS コマンドラインインターフェイス (AWS CLI) のコマンド実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください

AWS Identity Access Management (IAM) ロールとポリシーの設定ミス

IAM ロールに Amazon RDS MySQL インスタンスから Amazon S3 にスナップショットをエクスポートするための許可がない場合、次のエラーが発生します。

An error occurred (IamRoleMissingPermissions) when calling the StartExportTask operation: The IAM Role arn:aws:iam::1234567890:role/service-role/role_name isn't authorized to call s3:GetBucketLocation on the S3 bucket my_bucket_name OR
An error occurred (IamRoleMissingPermissions) when calling the StartExportTask operation: The IAM Role arn:aws:iam::1234567890:role/service-role/role_name isn't authorized to call s3:DeleteObject on the S3 bucket my_bucket_name OR
An error occurred (IamRoleMissingPermissions) when calling the StartExportTask operation: The IAM Role arn:aws:iam::1234567890:role/service-role/role_name isn't authorized to call s3:PutObject on the S3 bucket my_bucket_name OR
An error occurred (IamRoleMissingPermissions) when calling the StartExportTask operation: The IAM Role arn:aws:iam::1234567890:role/service-role/role_name isn't authorized to call s3:ListBucket on the S3 bucket my_bucket_name OR
An error occurred (IamRoleMissingPermissions) when calling the StartExportTask operation: The IAM Role arn:aws:iam::1234567890:role/service-role/role_name isn't authorized to call s3:GetObject on the S3 bucket my_bucket_name.

スナップショットを Amazon S3 に正常にエクスポートするには、IAM ロールに次の 5 つのアクションに対する適切な許可が必要です。

  • s3:PutObject
  • s3:DeleteObject
  • s3:GetObject
  • s3:ListBucket
  • s3:GetBucketLocation

次の 5 つのアクションを許可する IAM ポリシー (JSON 形式) の例を次に示します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExportPolicy",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject*",
        "s3:ListBucket",
        "s3:GetObject*",
        "s3:DeleteObject*",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::s3_bucket_name",
        "arn:aws:s3:::s3_bucket_name/export/*"
      ]
    }
  ]
}

AWS KMS キーチェックの失敗

スナップショットのエクスポート中に AWS KMS キーが非アクティブ化または削除された場合は、次のエラーが表示されます。

Error: KMS keys check failed. Please check the credentials on your KMS key and try again.

この問題を解決するには、スナップショットのエクスポートに使用する AWS KMS キーAWS KMS コンソールに存在することを確認します。AWS KMS キーのステータスに [Enabled] (有効) と表示されている必要があります。

エクスポートタスクが [STARTING] (開始中) ステータスでスタックしている

Amazon RDS for MySQL DB スナップショットを Amazon S3 にエクスポートするのにかかる時間は、データベースのサイズとタイプの両方によって異なります。エクスポートタスクは、データを Amazon S3 に抽出する前に、データベース全体を復元してスケールします。この段階では、エクスポートタスクは [STARTING] (開始中) ステータスを表示します。タスクが Amazon S3 へのデータのエクスポートを開始すると、ステータスが [In progress] (進行中) に変わります。エクスポートタスクが成功した場合、ステータスはタスクが完了したことを示します。エクスポートタスクプロセスに問題がある場合、ステータスはタスクが失敗したことを示します。

IAM ロールに必要な許可が不足していて、Amazon API Gateway で AWS Lambda を使用している場合は、次のエラーが表示されます。

An error occurred (AccessDenied) when calling the StartExportTask operation: User: arn:aws:sts::1234567890:assumed-role/user/rds_lambda is not authorized to perform: rds:StartExportTask

この問題を解決するには、rds:StartExportTask への書き込みアクセスを許可してください。ただし、StartExportTask アクションにアクセスできる必要があります。

"Effect": "Allow",
"Action": "rds:StartExportTask",
"Resource": "*"

IAM ロールに StartExportTask オペレーションを呼び出すための許可がない場合、次のエラーが表示されます。

An error occurred (AccessDenied) when calling the StartExportTask operation: User: arn:aws:sts::1234567890:assumed-role/user/rds_lambda is not authorized to perform: iam:PassRole on Resource ,iam role arn.

このエラーを解決するには、AWS のサービスにロールを渡すための許可をユーザーに付与してください。

{
    "Effect": "Allow",
    "Action": [
      "iam:GetRole",
      "iam:PassRole"
    ],
    "Resource": "arn:aws:iam::1234567890:role/role_name"
}

KMSKeyNotAccessibleFault

スナップショットエクスポートメカニズムから AWS KMS キーまたは IAM ロールにアクセスできない場合、次のエラーが表示されます。

An error occurred (KMSKeyNotAccessibleFault) when calling the StartExportTask operation: The specified KMS key <key_id> does not exist, is not enabled or you do not have permissions to access it.

Amazon RDS の KMSKeyNotAccessibleFault エラーを解決するには、「Amazon S3 バケットへのアクセスを設定する」を参照してください。

Amazon Aurora の KMSKeyNotAccessibleFault エラーを解決するには、「クロスアカウント AWS KMS キーを使用する」を参照してください。

テーブルの許可に関する問題

Amazon RDS のテーブルにアクセスするための適切な許可がない場合、次のエラーが表示されます。

Error: PERMISSIONS_DO_NOT_EXIST error stating that (n) tables were skipped

この問題を解決するには、PostgreSQL データベースに接続した後に次のコマンドを実行します。

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO superuser_name;

IAM ロールが存在しない

IAM ロールの信頼ポリシーに適切な信頼関係が指定されていない場合は、次のエラーが表示されます。

Error: The Principal export.rds.amazonaws.com isn't allowed to assume the IAM role arn:aws:iam::1234567890:role/iam_role or the IAM role arn:aws:iam::1234567890:role/iam_role doesn't exist.

この問題を解決するには、IAM ポリシーで「rds.amazonaws.com」ではなく「export.rds.amazonaws.com」が信頼関係で指定されていることを確認してください。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "export.rds.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {}
    }
  ]
}

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ