AWS DMS를 사용할 때 Amazon S3 엔드포인트 연결 테스트 실패 문제를 해결하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Simple Storage Service(Amazon S3)를 AWS Database Migration Service(AWS DMS) 태스크의 소스 또는 대상 엔드포인트로 사용하고 있습니다. 엔드포인트 연결 테스트가 실패하여 오류 메시지를 받았습니다.

간략한 설명

Amazon S3 엔드포인트를 사용하는 AWS Identity and Access Management(IAM) 역할에 대해 구성된 올바른 권한이 있어야 합니다. 올바른 권한이 없는 경우 다음 항목 중 하나가 표시됩니다.

메시지:

  • 테스트 엔드포인트 실패: 애플리케이션 상태: 1020912, 애플리케이션 메시지: S3 엔드포인트에 연결하지 못했습니다. 액세스가 거부되었습니다.
  • 테스트 엔드포인트 실패: 애플리케이션 상태: 1020912, Application-Message: 버킷 나열 실패–dms 데이터베이스에 연결 실패., Application-Detailed-Message: 버킷 나열 실패–dms AWS가 버킷 나열 실패. 'AccessDenied' 예외로 인해 버킷 나열 실패, 메시지 '액세스 거부됨', 오류 유형 '15' AWS가 버킷 나열 실패. 재현할 수 없는 오류: 액세스 거부됨
  • 테스트 엔드포인트 실패: Application-Status: 1020912, Application-Message: 데이터베이스에 연결 실패.
  • 오류 세부 정보: [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 역할에 허용된 **리소스(resource)**와 일치하는지 확인합니다. 예를 들어 IAM 역할은 이전 예제 정책에서 awsexamplebucket과 같은 하나의 버킷에 대한 액세스만 허용합니다. 하지만 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) 경로를 추가합니다.

        -또는-

        복제 인스턴스가 AWS DMS에서 사용하는 모든 소스 및 대상 엔드포인트에 액세스할 수 있도록 VPC 엔드포인트를 생성합니다. 자세한 내용은 AWS DMS 버전 3.4.7 이상으로의 마이그레이션 준비를 참조하십시오.


관련 정보

AWS DMS 엔드포인트 연결 실패 문제를 해결하려면 어떻게 해야 하나요?