공유 AWS Cloud Map 네임스페이스가 있는 Amazon ECS Service Connect 문제 해결

공유 AWS Cloud Map 네임스페이스가 있는 Amazon ECS Service Connect 문제 해결

다음 정보를 사용해 공유 AWS Cloud Map 네임스페이스와 Service Connect의 문제를 해결하세요. 오류 메시지를 찾는 방법에 대한 자세한 내용은 Amazon ECS troubleshooting을 참고하세요. 권한 문제와 관련된 오류 메시지는 권한이 없거나 네임스페이스에 대한 접근이 취소되었을 때 나타나요. 중요: Service Connect가 네임스페이스와 제대로 작동하려면 네임스페이스를 공유할 때 AWSRAMPermissionCloudMapECSFullPermission 관리형 권한을 사용해야 해요.

출처: 문서

본문

오류 메시지는 다음 형식 중 하나로 나타나요.

An error occurred (ClientException) when calling the <OperationName> operation: User: arn:aws:iam::<account-id>:user/<user-name> is not authorized to perform: <ActionName> on resource: <ResourceArn> because no resource-based policy allows the <ActionName> action

이 형식의 오류 메시지를 초래할 수 있는 시나리오는 다음과 같아요.

클러스터 생성 또는 업데이트 실패: CreateCluster 또는 UpdateCluster 같은 Amazon ECS 작업이 AWS Cloud Map 권한 부족으로 실패할 때 발생해요. 이 작업에는 다음 AWS Cloud Map 액션에 대한 권한이 필요해요.

  • servicediscovery:GetNamespace

리소스 공유 초대(insession)가 소비자 계정에서 수락되었고 Service Connect 구성에서 올바른 네임스페이스 ARN이 사용되고 있는지 확인하세요.

서비스 생성 또는 업데이트 실패: CreateService 또는 UpdateService 같은 Amazon ECS 작업이 AWS Cloud Map 권한 부족으로 실패할 때 발생해요. 이 작업에는 다음 AWS Cloud Map 액션에 대한 권한이 필요해요.

  • servicediscovery:CreateService
  • servicediscovery:GetNamespace
  • servicediscovery:GetOperation (새 AWS Cloud Map 서비스를 만들 때)
  • servicediscovery:GetService (AWS Cloud Map 서비스가 이미 존재할 때)

리소스 공유 초대가 소비자 계정에서 수락되었고 Service Connect 구성에서 올바른 네임스페이스 ARN이 사용되고 있는지 확인하세요.

ListServicesByNamespace 작업 실패: Amazon ECS ListServicesByNamespace 작업이 실패할 때 발생해요. 이 작업에는 다음 AWS Cloud Map 액션에 대한 권한이 필요해요.

  • servicediscovery:GetNamespace

이 문제를 해결하려면:

  • 소비자 계정에 servicediscovery:GetNamespace 권한이 있는지 확인하세요.
  • API를 호출할 때 이름이 아닌 네임스페이스 ARN을 사용하세요.
  • 리소스 공유가 활성화되고 초대가 수락되었는지 확인하세요.

User: <iam-user> is not authorized to perform: <ActionName> on resource: <ResourceArn> with an explicit deny in an identity-based policy

이 형식의 오류 메시지를 초래할 수 있는 시나리오는 다음과 같아요.

서비스 삭제 실패 및 DRAINING 상태 고착: 네임스페이스에 대한 접근이 취소되었을 때 servicediscovery:DeleteService 권한 부족으로 DeleteService 작업이 실패할 때 발생해요. 서비스는 처음에는 성공적으로 삭제된 것처럼 보일 수 있지만 DRAINING 상태에 갇히게 돼요. 오류 메시지는 Amazon ECS 서비스 이벤트로 나타나요. 이 문제를 해결하려면 네임스페이스 소유자가 네임스페이스를 소비자 계정과 공유해 서비스 삭제가 완료되도록 해야 해요.

서비스의 태스크 실행 실패: 권한 부족으로 태스크가 시작에 실패할 때 발생해요. 오류 메시지는 중지된 태스크 오류로 표시돼요. 자세한 내용은 Resolve Amazon ECS stopped task errors를 참고하세요. 태스크 실행에 필요한 AWS Cloud Map 액션은 다음과 같아요.

  • servicediscovery:GetOperation
  • servicediscovery:RegisterInstance

소비자 계정에 필요한 권한이 있고 공유 네임스페이스에 접근할 수 있는지 확인하세요.

태스크가 깔끔하게 중지되지 않거나 DEACTIVATING 또는 DEPROVISIONING 상태에 고착: 권한 부족으로 종료 중에 태스크가 AWS Cloud Map 서비스에서 등록 해제되지 못할 때 발생해요. 오류는 DescribeTasks API로 검색할 수 있는 태스크 attachment의 statusReason으로 표시돼요. 자세한 내용은 Amazon Elastic Container Service API Reference의 DescribeTasks를 참고하세요. 태스크를 중지하는 데 필요한 AWS Cloud Map 액션은 다음과 같아요.

  • servicediscovery:DeregisterInstance
  • servicediscovery:GetOperation

공유 네임스페이스에 대한 접근이 취소되면 태스크는 네임스페이스 접근이 복원될 때까지 DEACTIVATING 또는 DEPROVISIONING 상태로 남아 있을 수 있어요. 네임스페이스 소유자에게 네임스페이스 접근 복원을 요청하세요.