AWS Database Migration Service(AWS DMS) 작업의 소스 또는 대상 엔드포인트로 Amazon Simple Storage Service(Amazon S3)를 사용하고 있습니다. 엔드포인트 연결 테스트에 실패하여 오류 메시지를 받았습니다.
간략한 설명
Amazon S3 엔드포인트를 사용하는 AWS Identity and Access Management(IAM) 역할에 대해 적절한 권한을 구성해야 합니다. 적절한 권한이 없는 경우 다음 항목 중 하나가 표시됩니다.
메시지:
- Test Endpoint failed: Application-Status: 1020912, Application-Message: Failed to connect to S3 endpoint. Access denied.
- Test Endpoint failed: Application-Status: 1020912, Application-Message: Failed to list bucket wan-dms Failed to connect to database., Application-Detailed-Message: failed to list bucket wan-dms AWS failed to list bucket List bucket failed with exception 'AccessDenied', message 'Access Denied', error type '15' AWS failed to list bucket Not retriable error: Access Denied
- Test Endpoint failed: Application-Status: 1020912, Application-Message: Failed to connect to database.
- Error Details: [message=putDatabase call failed, errType=ERROR_RESPONSE, status=1020414, errMessage= Failed to connect to database., 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과 같이 하나의 버킷에 대한 액세스만 허용합니다. 하지만 Amazon S3 엔드포인트의 버킷 이름에 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 엔드포인트 연결 장애 문제를 해결하려면 어떻게 해야 하나요?