

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

# AWS 계정의 에이전트 액세스 제한
<a name="aws-devops-agent-security-limiting-agent-access-in-an-aws-account"></a>

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

## AWS DevOps 에이전트의 IAM 역할 이해
<a name="understanding-iam-roles-for-aws-devops-agent"></a>

AWS DevOps Agent는 IAM 역할을 사용하여 두 가지 유형의 계정의 리소스에 액세스합니다.
+ **기본 계정 역할** - 에이전트 스페이스를 생성하는 AWS 계정의 리소스에 대한 액세스 권한을 에이전트에게 부여합니다.
+ **보조 계정 역할** - 에이전트 스페이스에 연결하는 추가 AWS 계정의 리소스에 대한 액세스 권한을 에이전트에게 부여합니다.

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

## 리소스 경계 선택
<a name="choosing-your-resource-boundaries"></a>

리소스 액세스를 제한할 때는 에이전트가 애플리케이션 인시던트를 성공적으로 조사할 수 있는 충분한 권한을 포함해야 합니다. 여기에는 다음이 포함됩니다.
+ 에이전트가 모니터링하고 조사해야 하는 범위 내 애플리케이션의 모든 리소스
+ 해당 애플리케이션이 의존하는 모든 지원 인프라

지원 인프라에는 다음이 포함될 수 있습니다.
+ 네트워킹 구성 요소(VPCs, 서브넷, 로드 밸런서, API 게이트웨이)
+ 데이터 스토어(데이터베이스, 캐시, 객체 스토리지)
+ 컴퓨팅 리소스(EC2 인스턴스, Lambda 함수, 컨테이너)
+ 서비스 모니터링 및 로깅(CloudWatch, CloudTrail)
+ 권한을 이해하는 데 필요한 자격 증명 및 액세스 관리 리소스

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

## 서비스 액세스 제한
<a name="restricting-service-access"></a>

에이전트의 역할에 연결된 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": "*"
    }
  ]
}
```

## 리소스 액세스 제한
<a name="restricting-resource-access"></a>

에이전트를 서비스 내의 특정 리소스로 제한하려면 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`.

## 리전별 액세스 제한
<a name="restricting-regional-access"></a>

에이전트가 액세스할 수 있는 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 정책 생성
<a name="creating-custom-iam-policies"></a>

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

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

 AWS 관리 콘솔의 DevOps 에이전트 콘솔에서...
+ **정책 문서를 사용하여 새 DevOps 에이전트 역할 생성을** 선택하고 지침을 따릅니다.

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

 AWS 관리 콘솔의 DevOps 에이전트 콘솔에서...
+ **기능** 탭 선택
+ **클라우드** 섹션에서 편집하려는 보조 계정을 선택하고 편집을 클릭합니다.
+ **템플릿을 사용하여 새 DevOps 에이전트 정책 생성을** 선택하고 지침을 따릅니다.

## 사용자 지정 정책 모범 사례
<a name="custom-policy-best-practices"></a>
+ **읽기 전용 권한만 부여 -** 리소스 수정 또는 삭제를 허용하는 권한 피하기
+ **가능한 경우 리소스 수준 권한 사용 -** ARN 패턴 또는 태그를 사용하여 특정 리소스에 대한 액세스 제한
+ **정기적으로 권한 검토 및 감사** - 에이전트의 IAM 정책을 정기적으로 검토하여 보안 요구 사항에 부합하는지 확인합니다.