RDS 프록시에 대한 IAM 인증 구성
Amazon RDS에서 RDS 프록시에 대한 AWS Identity and Access Management(IAM) 인증을 설정하려면 필수 권한을 부여하는 IAM 정책을 만들고 구성합니다. RDS 프록시는 AWS Secrets Manager를 사용하여 데이터베이스 자격 증명을 안전하게 관리하므로 애플리케이션이 자격 증명을 직접 처리하지 않고도 프록시를 통해 인증할 수 있습니다.
이 주제에서는 필요한 IAM 정책을 만들고 IAM 역할에 연결하는 등 RDS 프록시에 대한 IAM 인증을 구성하는 단계를 제공합니다.
작은 정보
이 절차는 자체 IAM 역할을 만들려는 경우에만 필요합니다. 그렇지 않으면 프록시를 설정할 때 RDS가 필요한 역할을 자동으로 만들 수 있으므로 이러한 단계를 건너뛸 수 있습니다.
사전 조건
RDS 프록시에 대한 IAM 인증을 설정하기 전에 다음 사항이 포함되어 있는지 확인합니다.
-
AWS Secrets Manager - 데이터베이스 자격 증명이 포함된 하나 이상의 저장된 보안 암호입니다. 보안 암호를 만드는 설명은 AWS Secrets Manager에서 RDS 프록시용 데이터베이스 자격 증명 설정 섹션을 참조하시기 바랍니다.
-
IAM 권한 - AWS Secrets Manager에서 IAM 정책, 역할 및 보안 암호를 만들고 관리할 수 있는 권한이 있는 IAM 역할 또는 사용자입니다.
Secrets Manager 액세스를 위한 IAM 정책 만들기
RDS 프록시가 Secrets Manager에서 데이터베이스 자격 증명을 검색하도록 허용하려면 필수 권한을 부여하는 정책을 사용하여 IAM 역할을 만듭니다.
프록시와 함께 사용할 보안 암호에 액세스하는 IAM 정책을 만들려면 다음과 같이 합니다.
AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
역할에 대한 권한 정책을 만듭니다. 일반적인 단계는 IAM 정책 생성(콘솔)을 참조하시기 바랍니다.
이 정책을 JSON 편집기에 붙여넣고 다음 변경 사항을 적용합니다.
-
자신의 계정 ID를 대체합니다.
-
프록시가 상주할 리전으로
us-east-2
를 대체합니다. -
보안 암호 이름을 사용자가 만든 이름으로 대체합니다. 자세한 내용은 Specifying KMS keys in IAM policy statements를 참조하시기 바랍니다.
-
KMS 키 ID를 기본 키 또는 자체 키인 Secrets Manager 보안 암호를 암호화하는 데 사용한 ID로 대체합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": [ "arn:aws:secretsmanager:us-east-2:
account_id
:secret:secret_name_1
", "arn:aws:secretsmanager:us-east-2:account_id
:secret:secret_name_2
" ] }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-2:account_id
:key/key_id
", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com" } } } ] } -
-
역할을 만들고 역할에 권한 정책을 연결합니다. 일반적인 단계는 AWS 서비스에 대한 권한을 위임할 역할 생성을 참조하시기 바랍니다.
신뢰할 수 있는 엔터티 유형에서 AWS 서비스를 선택합니다. 사용 사례에서 RDS를 선택하고 사용 사례에서 RDS - 데이터베이스에 역할 추가를 선택합니다.
-
권한 정책에서 사용자가 만든 정책을 선택합니다.
-
신뢰할 수 있는 엔터티 선택에서 역할에 대해 신뢰할 수 있는 정책을 다음과 같이 입력합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWS CLI를 사용하여 역할을 만들려면 다음 요청을 보냅니다.
aws iam create-role \ --role-name
my_role_name
\ --assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"Service":["rds.amazonaws.com"]},"Action":"sts:AssumeRole"}]}'
그런 다음 정책을 역할에 연결합니다.
aws iam put-role-policy \ --role-name
my_role_name
\ --policy-namesecret_reader_policy
\ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": [ "arn:aws:secretsmanager:us-east-2:account_id
:secret:secret_name_1
", "arn:aws:secretsmanager:us-east-2:account_id
:secret:secret_name_2
" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-2:account_id
:key/key_id
", "Condition": { "StringEquals": { "kms:ViaService": "secretsmanager.us-east-2.amazonaws.com" } } } ] }'
IAM 역할 및 권한이 구성된 상태에서 이제 프록시를 만들고 이 역할과 연결할 수 있습니다. 이렇게 하면 프록시가 AWS Secrets Manager에서 데이터베이스 자격 증명을 안전하게 검색하고 애플리케이션에 대한 IAM 인증을 사용 설정할 수 있습니다. 지침은 RDS 프록시 생성 단원을 참조하세요.