View a markdown version of this page

AWS 계정의 에이전트 액세스 제한 - AWS DevOps 에이전트

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

AWS 계정의 에이전트 액세스 제한

AWS DevOps Agent는 IAM 역할을 사용하여 인시던트 조사 및 예방 평가 중에 AWS 리소스를 검색하고 설명합니다. 이러한 역할에 연결된 IAM 정책을 구성하여 에이전트의 액세스 수준을 제어할 수 있습니다. 애플리케이션 토폴로지에는 에이전트가 액세스할 수 있는 모든 것이 표시되지 않습니다. IAM 정책은 에이전트가 액세스할 수 있는 AWS 서비스 APIs 및 리소스를 진정으로 제한하는 유일한 방법입니다.

AWS DevOps 에이전트의 IAM 역할 이해

AWS DevOps Agent는 IAM 역할을 사용하여 두 가지 유형의 계정의 리소스에 액세스합니다.

  • 기본 계정 역할 - 에이전트 스페이스를 생성하는 AWS 계정의 리소스에 대한 액세스 권한을 에이전트에게 부여합니다.

  • 보조 계정 역할 - 에이전트 스페이스에 연결하는 추가 AWS 계정의 리소스에 대한 액세스 권한을 에이전트에게 부여합니다.

두 계정 유형 중 하나에 대해 에이전트가 액세스할 수 있는 AWS 서비스를 제한하고, 해당 서비스 내의 특정 리소스에 대한 액세스를 제한하고, 에이전트가 작동할 수 있는 리전을 제어할 수 있습니다.

리소스 경계 선택

리소스 액세스를 제한할 때는 에이전트가 애플리케이션 인시던트를 성공적으로 조사할 수 있는 충분한 권한을 포함해야 합니다. 여기에는 다음이 포함됩니다.

  • 에이전트가 모니터링하고 조사해야 하는 범위 내 애플리케이션의 모든 리소스

  • 해당 애플리케이션이 의존하는 모든 지원 인프라

지원 인프라에는 다음이 포함될 수 있습니다.

  • 네트워킹 구성 요소(VPCs, 서브넷, 로드 밸런서, API 게이트웨이)

  • 데이터 스토어(데이터베이스, 캐시, 객체 스토리지)

  • 컴퓨팅 리소스(EC2 인스턴스, Lambda 함수, 컨테이너)

  • 서비스 모니터링 및 로깅(CloudWatch, CloudTrail)

  • 권한을 이해하는 데 필요한 자격 증명 및 액세스 관리 리소스

액세스를 너무 좁게 제한하면 에이전트가 정의된 경계 외부의 지원 인프라에서 시작된 근본 원인을 식별하지 못할 수 있습니다.

서비스 액세스 제한

에이전트의 역할에 연결된 IAM 정책을 수정하여 에이전트가 액세스할 수 있는 AWS 서비스를 제한할 수 있습니다. 사용자 지정 정책을 생성할 때 다음 모범 사례를 따르세요.

  • 읽기 전용 권한만 부여 - 에이전트는 조사 중에 리소스 구성, 지표 및 로그를 읽어야 합니다. 에이전트가 리소스를 수정하거나 삭제할 수 있는 권한을 부여하지 마세요.

  • 필요한 서비스로 제한 - 애플리케이션과 관련된 리소스가 포함된 AWS 서비스만 포함합니다. 예를 들어 애플리케이션이 Amazon RDS를 사용하지 않는 경우 정책에 RDS 권한을 포함하지 마십시오.

  • 와일드카드 대신 특정 작업 사용 - service:* 권한을 부여하는 대신 cloudwatch:GetMetricData 또는와 같은 개별 작업을 지정합니다ec2:DescribeInstances.

특정 서비스로 제한하는 정책 예제:

json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:DescribeAlarms", "logs:GetLogEvents", "logs:FilterLogEvents", "ec2:DescribeInstances", "lambda:GetFunction", "lambda:GetFunctionConfiguration" ], "Resource": "*" } ] }

리소스 액세스 제한

에이전트를 서비스 내의 특정 리소스로 제한하려면 IAM 정책에서 리소스 수준 권한을 사용합니다. 이를 통해 특정 패턴과 일치하는 리소스에만 액세스 권한을 부여할 수 있습니다.

리소스 ARN 패턴 사용:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:GetFunctionConfiguration" ], "Resource": "arn:aws:lambda:*:*:function:production-*" } ] }

이 예제에서는 에이전트가 이름이 "production-"로 시작하는 Lambda 함수에만 액세스하도록 제한합니다.

태그 기반 제한 사용:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeInstanceStatus" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Environment": "production" } } } ] }

이 예제에서는 에이전트가 태그가 지정된 EC2 인스턴스에만 액세스하도록 제한합니다Environment=production.

리전별 액세스 제한

에이전트가 액세스할 수 있는 AWS 리전을 제한하려면 IAM 정책에서 aws:RequestedRegion 조건 키를 사용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "lambda:Get*", "cloudwatch:Get*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "us-east-1", "us-west-2" ] } } } ] }

이 예제에서는 에이전트가 us-east-1 및 us-west-2 리전의 리소스에만 액세스하도록 제한합니다.

사용자 지정 IAM 정책 생성

에이전트 스페이스를 생성하거나 보조 계정을 추가할 때 정책 템플릿을 사용하여 사용자 지정 IAM 역할을 생성할 수 있습니다. 이를 통해 최소 권한 원칙을 구현할 수 있습니다.

에이전트 스페이스를 생성할 때

AWS 관리 콘솔의 DevOps 에이전트 콘솔에서...

  • 정책 문서를 사용하여 새 DevOps 에이전트 역할 생성을 선택하고 지침을 따릅니다.

에이전트 스페이스를 편집할 때

AWS 관리 콘솔의 DevOps 에이전트 콘솔에서...

  • 기능 탭 선택

  • 클라우드 섹션에서 편집하려는 보조 계정을 선택하고 편집을 클릭합니다.

  • 템플릿을 사용하여 새 DevOps 에이전트 정책 생성을 선택하고 지침을 따릅니다.

사용자 지정 정책 모범 사례

  • 읽기 전용 권한만 부여 - 리소스 수정 또는 삭제를 허용하는 권한 피하기

  • 가능한 경우 리소스 수준 권한 사용 - ARN 패턴 또는 태그를 사용하여 특정 리소스에 대한 액세스 제한

  • 정기적으로 권한 검토 및 감사 - 에이전트의 IAM 정책을 정기적으로 검토하여 보안 요구 사항에 부합하는지 확인합니다.