Envoy 프록시 권한 부여 - AWS 앱 메시

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Envoy 프록시 권한 부여

중요

지원 종료 알림: 2026년 9월 30일에 에 대한 지원을 중단할 AWS 예정입니다 AWS App Mesh. 2026년 9월 30일 이후에는 AWS App Mesh 콘솔 또는 AWS App Mesh 리소스에 더 이상 액세스할 수 없습니다. 자세한 내용은 이 블로그 게시물에서 에서 Amazon ECS Service Connect AWS App Mesh 로 마이그레이션을 참조하세요.

프록시 권한 부여는 Amazon ECS 작업 내에서 실행되거나, Amazon 에서 실행되거나EKS, Amazon EC2 인스턴스에서 실행 중인 Kubernetes 포드에서 실행되는 Envoy 프록시가 App Mesh Envoy Management Service에서 하나 이상의 메시 엔드포인트의 구성을 읽을 수 있도록 권한을 부여합니다. 04/26/2021 이전에 이미 App Mesh 엔드포인트에 Envoys가 연결된 고객 계정의 경우 전송 계층 보안(TLS)을 사용하는 가상 노드와 가상 게이트웨이(가 있거나 없음)에 프록시 권한이 필요합니다TLS. 2021년 4월 26일 이후에 Envoy를 App Mesh 엔드포인트에 연결하려는 고객 계정의 경우 모든 App Mesh 기능에 프록시 권한 부여가 필요합니다. 모든 고객 계정은 를 사용하지 않더라도 모든 가상 노드에 대해 프록시 인증을 활성화TLS하여 특정 리소스IAM에 대한 권한 부여에 를 사용하는 안전하고 일관된 경험을 할 것을 권장합니다. 프록시 권한 부여를 사용하려면 IAM 정책에 appmesh:StreamAggregatedResources 권한을 지정해야 합니다. 정책은 IAM 역할에 연결되어야 하며, 해당 IAM 역할은 프록시를 호스팅하는 컴퓨팅 리소스에 연결되어야 합니다.

IAM 정책 생성

서비스 메시의 모든 메시 엔드포인트에서 모든 메시 엔드포인트의 구성을 읽을 수 있게 하려면 IAM 역할 생성으로 건너뜁니다. 개별 메시 엔드포인트에서 구성을 읽을 수 있는 메시 엔드포인트를 제한하려면 하나 이상의 IAM 정책을 생성해야 합니다. 구성을 읽을 수 있는 메시 엔드포인트를 특정 컴퓨팅 리소스에서 실행되는 Envoy 프록시로만 제한하는 것이 좋습니다. IAM 정책을 생성하고 정책에 appmesh:StreamAggregatedResources 권한을 추가합니다. 다음 예제 정책은 이름이 serviceBv1serviceBv2이고 서비스 메시에서 읽을 수 있는 가상 노드의 구성을 허용합니다. 서비스 메시에 정의된 다른 가상 노드의 구성은 읽을 수 없습니다. IAM 정책 생성 또는 편집에 대한 자세한 내용은 IAM 정책 생성 IAM 정책 편집을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "appmesh:StreamAggregatedResources", "Resource": [ "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv1", "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv2" ] } ] }

각각이 서로 다른 메시 엔드포인트에 대한 액세스를 제한하는 정책을 여러 개 만들 수 있습니다.

IAM 역할 생성

서비스 메시의 모든 메시 엔드포인트가 모든 메시 엔드포인트에 대한 구성을 읽을 수 있도록 하려면 하나의 IAM 역할만 생성하면 됩니다. 개별 메시 엔드포인트에서 구성을 읽을 수 있는 메시 엔드포인트를 제한하려면 이전 단계에서 생성한 각 정책에 대한 역할을 생성해야 합니다. 프록시가 실행되는 컴퓨팅 리소스에 대한 지침을 완료하세요.

  • Amazon EKS - 단일 역할을 사용하려면 클러스터를 생성할 때 생성되어 작업자 노드에 할당된 기존 역할을 사용할 수 있습니다. 여러 역할을 사용하려면 클러스터가 클러스터의 서비스 계정에 대한 IAM 역할 활성화에 정의된 요구 사항을 충족해야 합니다. IAM 역할을 생성하고 역할을 Kubernetes 서비스 계정과 연결합니다. 자세한 내용은 서비스 계정의 IAM 역할 및 정책 생성서비스 계정의 IAM 역할 지정을 참조하세요.

  • Amazon ECSAWS 서비스를 선택하고 Elastic Container Service를 선택한 다음 IAM 역할을 생성할 때 Elastic Container Service Task 사용 사례를 선택합니다.

  • Amazon EC2 - AWS 서비스를 선택하고 를 선택한 EC2다음 IAM 역할을 생성할 때 EC2 사용 사례를 선택합니다. 이는 Amazon EC2 인스턴스에서 직접 프록시를 호스팅하든 인스턴스에서 실행되는 Kubernetes에서 프록시를 호스팅하든 관계없이 적용됩니다.

IAM 역할을 생성하는 방법에 대한 자세한 내용은 AWS 서비스의 역할 생성을 참조하세요.

IAM 정책 연결

서비스 메시의 모든 메시 엔드포인트가 모든 메시 엔드포인트에 대한 구성을 읽을 수 있도록 하려면 이전 단계에서 생성한 IAM 역할에 AWSAppMeshEnvoyAccess 관리형 IAM 정책을 연결합니다. 개별 메시 엔드포인트에서 구성을 읽을 수 있는 메시 엔드포인트를 제한하려면 생성한 각 정책을 생성한 각 역할에 연결합니다. 사용자 지정 또는 관리형 IAM 정책을 IAM 역할에 연결하는 방법에 대한 자세한 내용은 IAM 자격 증명 권한 추가를 참조하세요.

IAM 역할 연결

각 IAM 역할을 적절한 컴퓨팅 리소스에 연결합니다.

  • Amazon EKS - 작업자 노드에 연결된 역할에 정책을 연결한 경우 이 단계를 건너뛸 수 있습니다. 별도의 역할을 생성한 경우 각 역할을 별도의 Kubernetes 서비스 계정에 할당하고 각 서비스 계정을 Envoy 프록시가 포함된 개별 Kubernetes 포드 배포 사양에 할당합니다. 자세한 내용은 Amazon EKS 사용 설명서서비스 계정의 IAM 역할 지정 및 Kubernetes 설명서의 포드의 서비스 계정 구성을 참조하세요.

  • Amazon ECS - Envoy 프록시가 포함된 작업 정의에 Amazon ECS 작업 역할을 연결합니다. 작업은 EC2 또는 Fargate 시작 유형으로 배포할 수 있습니다. Amazon ECS 작업 역할을 생성하고 작업에 연결하는 방법에 대한 자세한 내용은 작업의 IAM 역할 지정을 참조하세요.

  • Amazon EC2 - IAM 역할은 Envoy 프록시를 호스팅하는 Amazon EC2 인스턴스에 연결되어야 합니다. Amazon EC2 인스턴스에 역할을 연결하는 방법에 대한 자세한 내용은 IAM 역할을 생성했으며 이제 인스턴스에 할당하기를 참조하세요EC2.

권한 확인

컴퓨팅 서비스 이름 중 하나를 선택하여 프록시를 호스팅하는 컴퓨팅 리소스에 appmesh:StreamAggregatedResources 권한이 할당되었는지 확인합니다.

Amazon EKS

사용자 지정 정책은 작업자 노드나 개별 포드 또는 둘 다에 할당된 역할에 할당될 수 있습니다. 하지만 개별 포드에 대한 액세스를 개별 메시 엔드포인트로 제한할 수 있도록 개별 포드에만 정책을 할당하는 것이 좋습니다. 정책이 작업자 노드에 할당된 역할에 연결된 경우 Amazon EC2 탭을 선택하고 작업자 노드 인스턴스에 대해 해당 위치에 있는 단계를 완료합니다. Kubernetes 포드에 할당된 IAM 역할을 확인하려면 다음 단계를 완료합니다.

  1. Kubernetes 서비스 계정이 할당되었는지 확인하려는 포드가 포함된 Kubernetes 배포의 세부 정보를 확인하세요. 다음 명령은 라는 배포에 대한 세부 정보를 봅니다.my-deployment.

    kubectl describe deployment my-deployment

    반환된 출력에서 Service Account: 오른쪽에 있는 값을 기록해 둡니다. Service Account:로 시작하는 줄이 없는 경우 사용자 지정 Kubernetes 서비스 계정이 현재 배포에 할당되지 않은 것입니다. 이 계정을 하나 할당해야 합니다. 자세한 내용은 Kubernetes 문서의 포드용 서비스 계정 구성을 참조하세요.

  2. 이전 단계에서 반환한 서비스 계정의 세부 정보를 확인하세요. 다음 명령은 라는 서비스 계정의 세부 정보를 봅니다.my-service-account.

    kubectl describe serviceaccount my-service-account

    Kubernetes 서비스 계정이 AWS Identity and Access Management 역할에 연결되어 있는 경우 반환되는 라인 중 하나는 다음 예제와 비슷합니다.

    Annotations:         eks.amazonaws.com/role-arn=arn:aws:iam::123456789012:role/my-deployment

    이전 예제에서는 서비스 계정이 연결된 IAM 역할의 my-deployment 이름입니다. 서비스 계정 출력에 위 예제와 유사한 줄이 없는 경우 Kubernetes 서비스 계정은 AWS Identity and Access Management 계정에 연결되지 않으므로 계정에 연결해야 합니다. 자세한 내용은 서비스 계정의 IAM 역할 지정을 참조하세요.

  3. 에 로그인 AWS Management Console 하고 에서 IAM 콘솔을 엽니다https://console.aws.amazon.com/iam/.

  4. 왼쪽 탐색 창에서 역할을 선택합니다. 이전 단계에서 기록한 IAM 역할의 이름을 선택합니다.

  5. 이전에 생성한 사용자 지정 정책 또는 AWSAppMeshEnvoyAccess 관리형 정책이 나열되어 있는지 확인합니다. 정책이 연결되지 않은 경우 IAM 역할에 IAM 정책을 연결합니다. 사용자 지정 IAM 정책을 연결하려는데 정책이 없는 경우 필요한 권한이 있는 사용자 지정 IAM 정책을 생성해야 합니다. 사용자 지정 IAM 정책이 연결된 경우 정책을 선택하고 정책에 이 포함되어 있는지 확인합니다"Action": "appmesh:StreamAggregatedResources". 그렇지 않으면 사용자 지정 IAM 정책에 해당 권한을 추가해야 합니다. 특정 메시 엔드포인트에 적절한 Amazon 리소스 이름(ARN)이 나열되었는지 확인할 수도 있습니다. 나열된 ARNs 항목이 없으면 정책을 편집하여 나열된 를 추가, 제거 또는 변경할 수 있습니다ARNs. 자세한 내용은 IAM 정책 편집 및 단원을 참조하세요IAM 정책 생성.

  6. Envoy 프록시가 포함된 각 Kubernetes 포드에 대해 이전 단계를 반복합니다.

Amazon ECS
  1. Amazon ECS 콘솔에서 작업 정의 를 선택합니다.

  2. Amazon ECS 작업을 선택합니다.

  3. 태스크 정의 이름 페이지에서 태스크 정의를 선택합니다.

  4. 작업 정의 페이지에서 작업 IAM 역할 오른쪽에 있는 역할 이름의 링크를 선택합니다. IAM 역할이 나열되지 않은 경우 IAM 역할을 생성하고 작업 정의를 업데이트하여 작업에 연결해야 합니다.

  5. 요약 페이지의 권한 탭에서 이전에 생성한 사용자 지정 정책 또는 AWSAppMeshEnvoyAccess 관리형 정책이 나열되어 있는지 확인합니다. 정책이 연결되지 않은 경우 IAM 역할에 IAM 정책을 연결합니다. 사용자 지정 IAM 정책을 연결하려는데 정책이 없는 경우 사용자 지정 IAM 정책 을 생성해야 합니다. 사용자 지정 IAM 정책이 연결된 경우 정책을 선택하고 정책에 이 포함되어 있는지 확인합니다"Action": "appmesh:StreamAggregatedResources". 그렇지 않으면 사용자 지정 IAM 정책에 해당 권한을 추가해야 합니다. 특정 메시 엔드포인트에 적절한 Amazon 리소스 이름(ARN)이 나열되었는지 확인할 수도 있습니다. 나열된 ARNs 항목이 없으면 정책을 편집하여 나열된 를 추가, 제거 또는 변경할 수 있습니다ARNs. 자세한 내용은 IAM 정책 편집 및 단원을 참조하세요IAM 정책 생성.

  6. Envoy 프록시가 포함된 각 태스크 정의에 대해 이전 단계를 반복합니다.

Amazon EC2
  1. Amazon EC2 콘솔의 왼쪽 탐색에서 인스턴스를 선택합니다.

  2. Envoy 프록시를 호스팅하는 인스턴스 중 하나를 선택합니다.

  3. 설명 탭에서 IAM 역할 오른쪽에 있는 IAM 역할 이름의 링크를 선택합니다. IAM 역할이 나열되지 않은 경우 IAM 역할 를 생성해야 합니다.

  4. 요약 페이지의 권한 탭에서 이전에 생성한 사용자 지정 정책 또는 AWSAppMeshEnvoyAccess 관리형 정책이 나열되어 있는지 확인합니다. 정책이 연결되지 않은 경우 IAM 정책을 역할에 연결합니다. IAM 사용자 지정 IAM 정책을 연결하려는데 정책이 없는 경우 사용자 지정 IAM 정책 을 생성해야 합니다. 사용자 지정 IAM 정책이 연결된 경우 정책을 선택하고 정책에 이 포함되어 있는지 확인합니다"Action": "appmesh:StreamAggregatedResources". 그렇지 않으면 사용자 지정 IAM 정책에 해당 권한을 추가해야 합니다. 특정 메시 엔드포인트에 적절한 Amazon 리소스 이름(ARN)이 나열되었는지 확인할 수도 있습니다. 나열된 ARNs 항목이 없으면 정책을 편집하여 나열된 를 추가, 제거 또는 변경할 수 있습니다ARNs. 자세한 내용은 IAM 정책 편집 및 단원을 참조하세요IAM 정책 생성.

  5. Envoy 프록시를 호스팅하는 각 인스턴스에 대해 이전 단계를 반복합니다.