웹사이트 검색

Amazon RDS에 대한 향상된 모니터링 활성화


이 페이지에서

  1. 여기서 무엇을 보게 될까요?
  2. Passrole 권한이란 무엇입니까?\n
  3. 서비스에 역할을 전달하기 위한 전제 조건\n
  4. 역할 만들기\n
  5. IAM 사용자에 대한 IAM 정책 추가\n
  6. 역할이 없는 데이터베이스\n
  7. 데이터베이스에 역할 연결\n
  8. 결론

Amazon RDS는 데이터베이스에 대한 향상된 모니터링 기능을 제공합니다. Amazon RDS는 이 기능을 사용하여 데이터베이스 지표를 모니터링하고 Amazon CloudWatch Logs에 기록할 수 있습니다. 그러나 이 기능을 활성화하려면 Amazon RDS에 역할을 연결해야 하며 이를 위해서는 사용자에게 PassRole 권한이 있어야 합니다.

여기서 무엇을 볼 수 있습니까?

이 자습서에서는 Amazon RDS에 대한 향상된 모니터링을 활성화하기 위해 'IAM Passrole' 권한을 사용하는 방법을 알아봅니다. 우리는 간단한 예를 보여줌으로써 이것을 볼 것입니다.

Passrole 권한이란 무엇입니까?

많은 AWS 서비스를 구성하는 동안 사용자/관리자는 해당 서비스에 역할을 전달해야 합니다. 그런 다음 서비스는 해당 역할 내에서 허용되는 작업을 수행하기 위해 해당 역할을 가정합니다. 대부분의 경우 역할은 서비스에서 역할을 맡을 때마다가 아니라 서비스를 설정하는 동안 한 번만 서비스에 전달됩니다.

사용자는 서비스에 역할을 전달할 수 있는 권한이 있어야 합니다. 인증된 사용자만 서비스에 역할을 전달할 수 있으므로 이는 강력한 보안 측면입니다. 또한 관리자는 사용자가 서비스에 전달할 수 있는 역할 유형을 제어할 수 있습니다.

역할을 서비스에 전달하기 위한 전제 조건

IAM 사용자는 다음 세 가지 전제 조건이 있는 경우 AWS 서비스에 역할을 전달할 수 있습니다.

  1. 첫째, IAM 역할의 권한 경계 또는 범위를 결정할 역할에 대한 정책입니다.\n
  2. 다음으로, 기본적으로 AWS 서비스(우리의 경우 RDS)가 역할을 맡거나 맡고 역할에 나열된 권한을 활용하도록 허용하는 이 역할과 관련된 신뢰 정책입니다.\n
  3. 마지막으로 IAM 권한 정책이 IAM 사용자에게 연결되어 전달 권한이 있는 역할을 전달하도록 허용합니다.\n

역할 만들기

이 섹션에서는 'RDS-Monitoring-Role'이라는 역할을 생성하고 여기에 AWS 관리형 'AmazonRDSEnhancedMonitoringRole' 정책을 연결합니다.

1단계. 관리자 또는 루트 계정에서 IAM 대시보드로 이동하고 액세스 관리 옵션에서 '역할'을 선택합니다. '역할 만들기' 버튼을 클릭합니다.

2단계. '신뢰할 수 있는 엔터티 선택' 섹션에 '신뢰할 수 있는 엔터티 유형'이 표시되면 여기에서 'AWS 서비스' 옵션을 선택합니다. 이제 '다른 AWS 서비스의 사용 사례'에서 'RDS'를 검색하고 'RDS - 향상된 모니터링' 옵션을 선택합니다.

3단계. 다음 섹션 '권한 추가'에서 'AmazonRDSEnhancedMonitoringRole' 정책을 연결하고 '다음'을 클릭합니다.

4단계. 여기에 역할 이름('RDS-Monitoring-Role')과 이에 대한 선택적 설명을 입력합니다. 신뢰 정책은 이 역할에 자동으로 연결됩니다.

{
	"Version": "2012-10-17",
	"Statement": [
    	{
        	"Sid": "",
        	"Effect": "Allow",
        	"Principal": {
            	"Service": "monitoring.rds.amazonaws.com"
        	},
        	"Action": "sts:AssumeRole"
    	}
	]
}

5단계. 마지막으로 '역할 만들기' 버튼을 클릭하여 위의 역할을 만듭니다.

IAM 사용자에 대한 IAM 정책 추가

지금까지 우리는 역할을 생성하고 여기에 정책을 첨부했으며 신뢰할 수 있는 정책도 얻었습니다. 이로써 두 가지 전제 조건이 충족되었습니다. 이제 세 번째 전제 조건으로 이동하여 IAM 사용자 자체에 대한 정책을 생성합니다. 이 정책에서 우리는 전체 EC2 및 RDS 액세스에 대한 사용자 권한과 위의 'RDS-Monitoring-Role' 역할을 RDS 인스턴스와 연결할 수 있는 권한을 부여했습니다. EC2 및 RDS에 대한 IAM 권한 수준을 직접 제어할 수 있습니다. 여기서는 PassRole 권한 시연에만 관심이 있습니다.

1단계. 다시 관리자 또는 루트 계정에서 IAM 대시보드로 이동하여 '정책'을 선택하고 '정책 만들기' 버튼을 클릭합니다.

2단계. 정책 생성 마법사에서 JSON 탭을 클릭하고 이 정책에 대한 다음 JSON 코드를 붙여넣기만 하면 됩니다.

{
	"Version": "2012-10-17",
	"Statement": [
    	{
        	"Sid": "VisualEditor0",
        	"Effect": "Allow",
        	"Action": "iam:PassRole",
        	"Resource": "arn:aws:iam::account_number:role/RDS-Monitoring-Role"
    	},
    	{
        	"Sid": "VisualEditor1",
        	"Effect": "Allow",
        	"Action": [
            	"rds:*",
            	"logs:Describe*",
            	"logs:List*",
            	"logs:StartQuery",
            	"ec2:*",
            	"iam:ListRoles",
            	"logs:StopQuery",
            	"logs:TestMetricFilter",
            	"logs:FilterLogEvents",
            	"logs:Get*",
            	"cloudwatch:GetMetricData"
        	],
        	"Resource": "*"
    	}
	]
}

위의 코드에서 'IAM_User_ID'를 IAM 사용자의 계정 번호 또는 ID로 바꾸고 'RDS-Monitoring-Role'을 역할 이름으로 바꿉니다. '다음:태그'를 클릭합니다.

3단계. 사용하려는 선택적 '태그'를 지정하고 '다음:검토'를 클릭합니다.

4단계. 여기에 이 정책의 이름을 입력하고(여기서는 'RDS-Monitoring-User-Policy') 마지막으로 '정책 만들기' 버튼을 클릭하여 이 정책을 만듭니다.

5단계. 위에서 생성한 정책을 IAM 사용자에게 연결합니다.

역할이 없는 데이터베이스

아래는 위에서 생성한 역할(RDS-Monitoring-Role)을 연결하지 않고 데이터베이스 구성 시나리오를 볼 수 있습니다. 여기에서 cloudwatch:GetMetricData 오류가 발생하는 것을 볼 수 있습니다.

데이터베이스에 역할 연결

이제 'RDS-Monitoring-Role'을 데이터베이스에 연결하고 위의 CloudWatch 오류가 발생하는지 확인하겠습니다. 역할은 RDS 인스턴스를 생성할 때나 생성된 후에 RDS 인스턴스와 연결할 수 있습니다. 이미 데이터베이스를 생성한 경우에는 db 인스턴스를 수정해야 합니다. 어떤 경우이든 RDS 콘솔로 이동하여 대상 데이터베이스 설정에서 '추가 구성' 블록을 엽니다. '모니터링' 섹션을 찾아 여기에서 '고급 모니터링 사용'에 해당하는 상자를 선택합니다. '모니터링 역할' 아래 드롭다운 메뉴에서 역할을 선택하고 '계속'을 클릭합니다.

다음 창에서 변경 사항을 적용할 시기에 대한 작업을 선택하고 'DB 인스턴스 수정'을 클릭합니다.

이번에는 데이터베이스 구성 세부 정보를 볼 때 CloudWatch 오류가 사라져야 합니다.

결론

이 가이드에서는 RDS에 대해 Enhanced Monitoring 기능을 활성화하기 위해 PassRole 권한을 사용하는 방법을 알아보았습니다. PassRole은 액세스 권한이 없는 다른 AWS 서비스에 액세스하기 위해 IAM 사용자에게 최소한의 권한을 부여하는 훌륭한 기능입니다.