

# Enhanced Monitoring 설정 및 활성화
<a name="USER_Monitoring.OS.Enabling"></a>

Enhanced Monitoring을 사용하려면 IAM 역할을 생성한 다음 Enhanced Monitoring을 활성화해야 합니다.

**Topics**
+ [Enhanced Monitoring에 대한 IAM 역할 생성](#USER_Monitoring.OS.Enabling.Prerequisites)
+ [향상된 모니터링 설정 및 해제](#USER_Monitoring.OS.Enabling.Procedure)
+ [혼동된 대리자 문제로부터 보호](#USER_Monitoring.OS.confused-deputy)

## Enhanced Monitoring에 대한 IAM 역할 생성
<a name="USER_Monitoring.OS.Enabling.Prerequisites"></a>

Enhanced Monitoring은 사용자를 대신하여 CloudWatch Logs에 OS 측정치 정보를 보낼 수 있는 권한이 필요합니다. AWS Identity and Access Management(IAM) 역할을 사용하여 Enhanced Monitoring에 권한을 부여합니다. 향상된 모니터링을 사용 설정할 때 이 역할을 생성하거나 미리 생성할 수 있습니다.

**Topics**
+ [Enhanced Monitoring을 활성화할 때 IAM 역할 생성](#USER_Monitoring.OS.Enabling.Prerequisites.creating-role-automatically)
+ [Enhanced Monitoring을 활성화하기 전에 IAM 역할 생성](#USER_Monitoring.OS.Enabling.Prerequisites.creating-role-manually)

### Enhanced Monitoring을 활성화할 때 IAM 역할 생성
<a name="USER_Monitoring.OS.Enabling.Prerequisites.creating-role-automatically"></a>

RDS 콘솔에서 Enhanced Monitoring을 활성화하면, Amazon RDS가 필요한 IAM 역할을 생성할 수 있습니다. 이 역할의 이름은 `rds-monitoring-role`입니다. RDS는 지정된 DB 인스턴스, 읽기 전용 복제본 또는 다중 AZ DB 클러스터에 이 역할을 사용합니다.

**Enhanced Monitoring을 활성화할 때 IAM 역할을 생성하려면**

1. [향상된 모니터링 설정 및 해제](#USER_Monitoring.OS.Enabling.Procedure) 단원의 단계를 따르십시오.

1. 역할을 선택하는 단계에서 **모니터링 역할(Monitoring Role)**을 **기본값(Default)**으로 설정합니다.

### Enhanced Monitoring을 활성화하기 전에 IAM 역할 생성
<a name="USER_Monitoring.OS.Enabling.Prerequisites.creating-role-manually"></a>

Enhanced Monitoring을 활성화하기 전에, 필요한 역할을 생성할 수 있습니다. Enhanced Monitoring을 활성화할 때 새 역할의 이름을 지정합니다. AWS CLI 또는 RDS API를 사용하여 Enhanced Monitoring을 활성화할 경우 이 필수 역할을 생성해야 합니다.

확장 모니터링을 활성화하는 사용자는 `PassRole` 권한을 부여받아야 합니다. 자세한 내용은 *IAM 사용 설명서*의 [사용자에게 AWS 서비스에 역할을 전달할 수 있는 권한 부여](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html)에 있는 예제 2를 참조하십시오.<a name="USER_Monitoring.OS.IAMRole"></a>

**Amazon RDS Enhanced Monitoring에 대한 IAM 역할을 생성하려면**

1. [https://console.aws.amazon.com](https://console.aws.amazon.com/)에서 [IAM 콘솔](https://console.aws.amazon.com/iam/home?#home)을 엽니다.

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

1. **역할 생성**을 선택합니다.

1. **AWS 서비스(service)** 탭을 선택한 다음 서비스 목록에서 **RDS**를 선택합니다.

1. **RDS - 확장 모니터링(RDS - Enhanced Monitoring)**과 **다음(Next)**을 차례로 선택합니다.

1. **권한 정책(Permissions policies)**에 **AmazonRDSEnhancedMonitoringRole**이 표시되었는지 확인하고 **다음(Next)**을 선택합니다.

1. **역할 이름**에 역할의 이름을 입력합니다. 예를 들면 **emaccess**를 입력합니다.

   사용자 역할에 대한 신뢰할 수 있는 엔터티는 **monitoring.rds.amazonaws.com** AWS 서비스입니다.

1. **역할 생성**을 선택합니다.

## 향상된 모니터링 설정 및 해제
<a name="USER_Monitoring.OS.Enabling.Procedure"></a>

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 향상된 모니터링을 관리할 수 있습니다. 각 DB 인스턴스에서 지표 수집에 대해 서로 다른 세부 수준을 설정할 수 있습니다. 

### 콘솔
<a name="USER_Monitoring.OS.Enabling.Procedure.Console"></a>

DB 인스턴스, 다중 AZ DB 클러스터, 또는 읽기 전용 복제본을 생성할 때나 DB 인스턴스 또는 다중 AZ DB 클러스터를 수정할 때 향상된 모니터링을 켤 수 있습니다. 향상된 모니터링을 활성화하기 위해 DB 인스턴스 를 수정하는 경우 DB 인스턴스를 재부팅하지 않아도 변경 내용이 적용됩니다.

**데이터베이스** 페이지에서 다음 작업 중 하나를 수행할 때 RDS 콘솔에서 향상된 모니터링을 사용 설정할 수 있습니다.
+ **DB 인스턴스 또는 다중 AZ DB 클러스터 생성** - **데이터베이스 생성(Create database)**을 선택합니다.
+ **읽기 전용 복제본 생성(Create a read replica)** - **작업(Actions)**을 선택한 다음 **읽기 전용 복제본 생성(Create read replica)**을 선택합니다.
+ **DB 인스턴스 또는 다중 AZ DB 클러스터 수정** – **수정**을 선택합니다.

**RDS 콘솔에서 향상된 모니터링 설정 또는 해제**

1. **추가 구성(Additional configuration)**으로 스크롤합니다.

1. **모니터링**에서 DB **인스턴스**, 클러스터 또는 읽기 전용 복제본에 대해 를 선택합니다. .

1. Amazon RDS에 사용자를 대신하여 Amazon CloudWatch Logs와 통신하도록 허용하기 위해 생성한 IAM 역할에 대한 [**Monitoring Role**] 속성을 설정하거나, [**Default**]를 선택하여 RDS에서 `rds-monitoring-role` 역할을 자동으로 생성하도록 합니다.

1. **세부 수준** 속성을 DB 인스턴스 또는 읽기 전용 복제본에 대한 지표가 수집되는 시점 간격(초)으로 설정합니다. [**Granularity**] 속성을 `1`, `5`, `10`, `15`, `30` 또는 `60` 값 중 하나로 설정할 수 있습니다.

   RDS 콘솔을 새로 고치는 최소 간격은 5초입니다. RDS 콘솔에서 단위를 1초로 설정한 경우에도 업데이트된 측정치는 5초마다 표시됩니다. CloudWatch Logs를 사용하여 1초 측정치 업데이트를 검색할 수 있습니다.

### AWS CLI
<a name="USER_Monitoring.OS.Enabling.Procedure.CLI"></a>

AWS CLI를 사용하여 향상된 모니터링을 활성화하려면 다음 명령에서 `--monitoring-interval` 옵션을 `0` 이외의 값으로 설정하고 `--monitoring-role-arn` 옵션을 [Enhanced Monitoring에 대한 IAM 역할 생성](#USER_Monitoring.OS.Enabling.Prerequisites)에서 생성된 역할로 설정합니다.
+ [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)
+ [create-db-instance-read-replica](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance-read-replica.html)
+ [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)
+ [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)(다중 AZ DB 클러스터)
+ [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)(다중 AZ DB 클러스터)

`--monitoring-interval` 옵션은 확장 모니터링 지표가 수집되는 시점 간격(초)을 지정합니다. 이 옵션의 유효한 값은 `0`, `1`, `5`, `10`, `15`, `30` 및 `60`입니다.

AWS CLI를 사용하여 향상된 모니터링을 해제하려면 다음 명령에서 `--monitoring-interval` 옵션을 `0`으로 설정합니다.

**Example**  
다음 예에서는 DB 인스턴스에 대해 향상된 모니터링을 설정합니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mydbinstance \
    --monitoring-interval 30 \
    --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mydbinstance ^
    --monitoring-interval 30 ^
    --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess
```

**Example**  
다음 예에서는 DB 인스턴스에 대해 향상된 모니터링을 설정합니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-cluster \
    --db-cluster-identifier mydbcluster \
    --monitoring-interval 30 \
    --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess
```
Windows의 경우:  

```
aws rds modify-db-cluster ^
    --db-cluster-identifier mydbcluster ^
    --monitoring-interval 30 ^
    --monitoring-role-arn arn:aws:iam::123456789012:role/emaccess
```

### RDS API
<a name="USER_Monitoring.OS.Enabling.Procedure.API"></a>

RDS API를 사용하여 향상된 모니터링을 설정하려면 `MonitoringInterval` 파라미터를 `0` 이외의 값으로 설정하고 `MonitoringRoleArn` 파라미터를 [Enhanced Monitoring에 대한 IAM 역할 생성](#USER_Monitoring.OS.Enabling.Prerequisites)에서 생성된 역할로 설정합니다. 다음 작업에서 이러한 파라미터를 설정합니다.
+ [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)
+ [CreateDBInstanceReadReplica](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstanceReadReplica.html)
+ [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html)
+ [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)(다중 AZ DB 클러스터)
+ [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)(다중 AZ DB 클러스터)

`MonitoringInterval` 파라미터는 확장 모니터링 지표가 수집되는 시점 간격(초)을 지정합니다. 유효 값은 `0`, `1`, `5`, `10`, `15`, `30`, `60`입니다.

RDS API를 사용하여 향상된 모니터링을 해제하려면 `MonitoringInterval`을 `0`으로 설정합니다.

## 혼동된 대리자 문제로부터 보호
<a name="USER_Monitoring.OS.confused-deputy"></a>

혼동된 대리자 문제는 작업을 수행할 권한이 없는 엔터티가 권한이 더 많은 엔터티에게 작업을 수행하도록 강요할 수 있는 보안 문제입니다. AWS에서는 교차 서비스 가장으로 인해 혼동된 대리자 문제가 발생할 수 있습니다. 교차 서비스 가장은 한 서비스(*직접 호출하는 서비스*)가 다른 서비스(*직접 호출되는 서비스*)를 직접 호출할 때 발생할 수 있습니다. 직접 호출하는 서비스는 다른 고객의 리소스에 대해 액세스 권한이 없는 방식으로 작동하게 권한을 사용하도록 조작될 수 있습니다. 이를 방지하기 위해 AWS에서는 계정의 리소스에 대한 액세스 권한이 부여된 서비스 위탁자를 사용하여 모든 서비스에 대한 데이터를 보호하는 데 도움이 되는 도구를 제공합니다. 자세한 내용은 [혼동된 대리자 문제](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)를 참조하세요.

Amazon RDS가 다른 서비스에 제공할 수 있는 리소스에 대한 권한을 제한하려면 향상된 모니터링 역할에 대한 신뢰 정책에서 `aws:SourceArn` 및 `aws:SourceAccount` 전역 조건 컨텍스트 키를 사용하는 것이 좋습니다. 두 전역 조건 컨텍스트 키를 모두 사용하는 경우 동일한 계정 ID를 사용해야 합니다.

혼동된 대리인 문제로부터 보호하는 가장 효과적인 방법은 리소스의 전체 ARN이 포함된 `aws:SourceArn`글로벌 조건 컨텍스트 키를 사용하는 것입니다. Amazon RDS의 경우 `aws:SourceArn`을 `arn:aws:rds:Region:my-account-id:db:dbname`으로 설정합니다.

다음 예에서는 혼동된 대리인 문제를 방지하기 위해 신뢰 정책에서 `aws:SourceArn` 및 `aws:SourceAccount` 전역 조건 컨텍스트 키를 사용합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "monitoring.rds.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringLike": {
          "aws:SourceArn": "arn:aws:rds:Region:my-123456789012:db:dbname"
        },
        "StringEquals": {
          "aws:SourceAccount": "my-123456789012"
        }
      }
    }
  ]
}
```

------