Amazon ECS의 AWS Secrets Manager 시크릿과 관련된 문제를 해결하려면 어떻게 해야 하나요?

3분 분량
0

AWS Secrets Manager 시크릿을 사용하는 작업을 Amazon Elastic Container Service(Amazon ECS)에 배치하려고 하면 오류가 발생합니다.

간략한 설명

Amazon ECS에 Secrets Manager 시크릿을 사용해 작업을 배치하지 못하면 다음 오류 중 하나가 발생할 수 있습니다.

"AWS Fargate에서 ResourceInitializationError 오류 발생 Amazon Elastic Compute Cloud(Amazon EC2)에서 AccessDenied 오류 발생"

"작업이 Secrets Manager에서 시크릿을 검색할 수 없고 실패합니다."

다음 이유 중 하나로 인해 이러한 오류 메시지가 표시됩니다.

  • Amazon ECS 작업 실행 역할에 Secrets Manager 시크릿에 액세스할 때 필요한 권한이 없습니다.

  • Secrets Manager에서 지정된 시크릿을 찾을 수 없습니다.

  • 시크릿 이름이 하이픈과 6개의 문자로 끝납니다. 부분 ARN을 사용해 비밀을 검색할 때 예기치 않은 결과가 반환됩니다.

  • Amazon Virtual Private Cloud(VPC) 네트워킹 구성에 문제가 있습니다.

시작에 실패하는 Amazon ECS 작업의 오류를 해결하려면 AWSSupport-TroubleshootECSTaskFailedToStart 런북을 사용하세요. 그런 다음 문제에 맞는 해결 단계를 참고하세요.

해결 방법

중요:

  • ECS 클러스터 리소스가 위치한 AWS 리전과 동일한 리전에 AWSSupport-TroubleshootECSTaskFailedToStart 런북을 사용합니다.

  • 런북을 사용할 때는 가장 최근에 실패한 작업 ID를 사용해야 합니다. 실패한 작업이 Amazon ECS 서비스의 일부인 경우, 서비스에서 가장 최근에 실패한 작업을 사용합니다. 실패한 작업은 자동화 실행 중에 ECS:DescribeTasks에 표시되어야 합니다. 기본적으로 중지된 ECS 작업은 중지됨 상태로 전환된 후 1시간 동안 표시됩니다. 가장 최근에 실패한 작업 ID를 사용하면 자동화 도중에 작업 상태 정리가 분석을 방해하지 않습니다.

런북을 시작하는 방법에 대한 지침은 AWSSupport-TroubleshootECSTaskFailedToStart를 참고하세요. 자동화 출력에 따라 다음 수동 문제 해결 단계 중 하나를 사용합니다.

ECS 작업 실행 역할에 필요한 권한이 있는지 확인합니다.

  1. IAM 콘솔을 엽니다.

  2. 탐색 창에서 역할을 선택합니다.

  3. 역할 목록에서 ECS 작업에 사용 중인 작업 실행 역할을 검색합니다.

  4. 작업 실행 역할에 필요한 Secrets Manager 리소스에 액세스하는 데 필요한 권한이 있는지 확인합니다.

Secrets Manager 시크릿이 있는지 확인

  1. Secrets Manager 콘솔을 엽니다.

  2. 시크릿 목록 페이지에서 ECS 작업에서 사용 중인 시크릿을 선택합니다.

  3. ECS 작업 정의에 이러한 특정 시크릿 이름이 포함되어 있는지 확인합니다. 시크릿에 추가 파라미터를 지정한 경우, 시크릿에 지정된 json-key/version-stage/version-id가 작업 정의에 포함되어 있는지 확인합니다.

Secrets Manager 시크릿 이름과 ARN을 확인합니다.

시크릿 이름이 하이픈 뒤에 6개의 문자로 끝나는지 확인합니다(예: myappsecret-xxxxxx). Secrets Manager에서는 ARN 끝에 있는 시크릿 이름 뒤에 하이픈과 임의의 문자 6개를 자동으로 추가합니다. 따라서 시크릿 이름 뒤에 하이픈과 6개의 문자를 붙이지 않는 것이 좋습니다. 시크릿 이름 뒤에 하이픈과 문자 6개를 붙이면 부분 ARN을 사용해 비밀을 검색할 때 예기치 않은 결과가 반환될 수 있습니다. 이 문제를 해결하려면 Secrets Manger 시크릿에 추가 하이픈과 6자를 포함한 전체 ARN을 사용해야 합니다.

VPC 네트워킹 구성에서 Amazon ECS 인프라를 Secrets Manager에 연결할 수 있도록 허용하는지 확인하세요.

다음 조건일 때 Secrets Manager의 인터페이스 VPC 엔드포인트를 생성합니다.

  • 컨테이너의 중요한 데이터를 검색하기 위해 Secrets Manager 시크릿을 참조하는 작업 정의를 사용하고 있습니다.

  • 인터페이스 VPC 엔드포인트를 사용하고 있습니다.

또한 VPC 엔드포인트의 보안 그룹에서 ECS 인프라가 해당 엔드포인트를 사용할 수 있도록 허용하는지 확인합니다.

Secrets Manager용 VPC 엔드포인트가 있는지 확인하려면 다음을 따르세요.

  1. Amazon VPC 콘솔을 엽니다.

  2. 탐색 창에서 엔드포인트를 선택합니다.

  3. 엔드포인트 목록에 Secrets Manager용 VPC 엔드포인트 com.amazonaws.example-region.secretsmanager가 있는지 확인합니다.

  4. 엔드포인트 목록에서 엔드포인트를 선택한 다음 서브넷 탭을 선택합니다. 이 엔드포인트의 서브넷에 ECS 작업에서 사용하는 서브넷이 포함되어 있는지 확인합니다.

    참고: 서브넷이 목록에 포함되어 있지 않으면 서브넷 관리를 선택합니다. 가용 영역을 기준으로 서브넷을 선택한 다음 서브넷 수정을 선택합니다.

엔드포인트 com.amazonaws.example-region.secretsmanager에 연결된 보안 그룹에서 Amazon ECS 작업으로부터 오는 연결을 포트 443에서 허용하는지 확인하려면 다음과 같이 하세요.

  1. 엔드포인트 목록에서 엔드포인트를 선택합니다.

  2. 보안 그룹 탭을 선택합니다.

  3. 확인하려는 보안 그룹에 대한 그룹 ID를 선택합니다.

  4. 인바운드 규칙 탭을 선택합니다.

  5. 인바운드 규칙 목록에 ECS 작업에서 443 연결을 허용하는 규칙이 포함되어 있는지 확인합니다.

관련 정보

어떻게 Amazon ECS 작업의 컨테이너에 시크릿이나 민감한 정보를 안전하게 전달할 수 있나요?

AWS Secrets Manager 문제 해결