데이터베이스 인증 및 리소스 액세스 수동 설정
데이터베이스 인증 및 리소스 액세스를 설정하는 수동 프로세스에는 다음 단계가 있습니다.
이 프로세스는 선택 사항이며 스크립트를 사용하여 데이터베이스 인증 및 리소스 액세스 설정에서와 동일한 작업을 수행합니다. 스크립트를 사용하는 것이 좋습니다.
고객 관리형 AWS KMS key 만들기
Creating symmetric encryption keys의 프로시저에 따라 고객 관리형 KMS 키를 만듭니다. 다음 요구 사항을 충족하는 경우 기존 키를 사용할 수도 있습니다.
고객 관리형 KMS 키를 만드는 방법
-
AWS Management Console에 로그인하고 https://console.aws.amazon.com/kms
에서 AWS KMS 콘솔을 엽니다. -
고객 관리형 키 페이지로 이동합니다.
-
키 생성을 선택합니다.
-
키 구성 페이지에서 다음 단계를 따릅니다.
-
키 유형에서 대칭을 선택합니다.
-
키 사용에서 암호화 및 해독을 선택합니다.
-
Next(다음)를 선택합니다.
-
-
레이블 추가 페이지에서
limitless
와 같은 별칭을 입력한 후 다음을 선택합니다. -
키 관리 권한 정의 페이지에서 키 관리자가 이 키를 삭제하도록 허용 확인란이 선택되어 있는지 확인한 후 다음을 선택합니다.
-
키 사용 권한 정의 페이지에서 다음을 선택합니다.
-
검토 페이지에서 완료를 선택합니다.
나중에 키 정책을 업데이트합니다.
IAM 역할 권한 정책 추가에서 사용할 KMS 키의 Amazon 리소스 이름(ARN)을 기록합니다.
AWS CLI를 사용하여 고객 관리형 KMS 키를 만드는 방법에 대한 자세한 내용은 create-key
데이터베이스 보안 암호 만들기
데이터 로드 유틸리티가 소스 및 대상 데이터베이스 테이블에 액세스할 수 있도록 하려면 AWS Secrets Manager에서 두 개의 보안 암호를 만듭니다. 하나는 소스 데이터베이스용이고 다른 하나는 대상 데이터베이스용입니다. 이러한 보안 암호는 소스 및 대상 데이터베이스에 액세스하기 위한 사용자 이름과 암호를 저장합니다.
Create an AWS Secrets Manager secret의 프로시저에 따라 키-값 페어 보안 암호를 만듭니다.
데이터베이스 보안 암호를 만드는 방법
https://console.aws.amazon.com/secretsmanager/
에서 Secrets Manager 콘솔을 엽니다. -
Store a new secret(새 보안 암호 저장)을 선택합니다.
-
보안 암호 유형 선택 페이지에서 다음을 수행합니다.
-
보안 암호 유형에서 다른 유형의 보안 암호를 선택합니다.
-
키/값 페어에서 일반 텍스트 탭을 선택합니다.
-
다음 JSON 코드를 입력합니다. 여기서
및sourcedbreader
는 소스 데이터베이스 자격 증명 만들기의 소스 데이터베이스 사용자의 자격 증명입니다.sourcedbpassword
{ "username":"
sourcedbreader
", "password":"sourcedbpassword
" } -
암호화 키에서 고객 관리형 AWS KMS key 만들기에서 만든 KMS 키(예:
limitless
)를 선택합니다. -
Next(다음)를 선택합니다.
-
-
보안 암호 구성 페이지에서 보안 암호 이름(예:
source_DB_secret
)을 입력한 후 다음을 선택합니다. -
교체 구성 - 선택 사항 페이지에서 다음을 선택합니다.
-
검토(Review) 페이지에서 시작(Store)을 선택합니다.
-
대상 데이터베이스 보안 암호에 대해 같은 프로시저를 반복합니다.
-
다음 JSON 코드를 입력합니다. 여기서
및destinationdbwriter
는 대상 데이터베이스 자격 증명 만들기의 대상 데이터베이스 사용자의 자격 증명입니다.destinationdbpassword
{ "username":"
destinationdbwriter
", "password":"destinationdbpassword
" } -
보안 암호 이름(예:
destination_DB_secret
)을 입력합니다.
-
IAM 역할 권한 정책 추가에서 사용할 보안 암호의 ARN을 기록합니다.
IAM 역할 만들기
데이터를 로드하려면 AWS 리소스에 대한 액세스를 제공해야 합니다. 액세스를 제공하려면 IAM 사용자에게 권한을 위임할 역할 생성의 프로시저를 따라 aurora-data-loader
IAM 역할을 만듭니다.
IAM 역할을 만들려면
AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
역할 페이지로 이동합니다.
-
역할 생성을 선택합니다.
-
신뢰할 수 있는 엔터티 선택 페이지에서 다음을 수행합니다.
-
신뢰할 수 있는 엔터티 유형에서 사용자 지정 신뢰 정책을 선택합니다.
-
사용자 지정 신뢰 정책에 대해 다음 JSON 코드를 입력합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
Next(다음)를 선택합니다.
-
-
권한 추가 페이지에서 다음을 선택합니다.
-
이름, 검토 및 생성 페이지에서 다음을 수행합니다.
-
역할 이름에
aurora-data-loader
또는 원하는 다른 이름을 입력합니다. -
태그 추가를 선택하고 다음 태그를 입력합니다.
-
키:
assumer
-
값:
aurora_limitless_table_data_load
중요
Aurora PostgreSQL Limitless Database는 이 태그가 있는 IAM 역할만 수임할 수 있습니다.
-
-
역할 생성을 선택합니다.
-
고객 관리형 AWS KMS key 업데이트
키 정책 변경의 프로시저에 따라 aurora-data-loader
IAM 역할을 기본 키 정책에 추가합니다.
키 정책에 IAM 역할을 추가하는 방법
-
AWS Management Console에 로그인하고 https://console.aws.amazon.com/kms
에서 AWS KMS 콘솔을 엽니다. -
고객 관리형 키 페이지로 이동합니다.
-
고객 관리형 AWS KMS key 만들기에서 만든 KMS 키(예:
limitless
)를 선택합니다. -
키 정책 탭의 키 사용자에서 추가를 선택합니다.
-
키 사용자 추가 창에서 IAM 역할 만들기에서 만든 IAM 역할의 이름(예: aurora-data-loader)을 선택합니다.
-
추가를 선택합니다.
IAM 역할 권한 정책 추가
만든 IAM 역할에 권한 정책을 추가해야 합니다. 이를 통해 Aurora PostgreSQL Limitless Database 데이터 로드 유틸리티는 네트워크 연결을 구축하고 소스 및 대상 DB 자격 증명 보안 암호를 검색하기 위해 관련 AWS 리소스에 액세스할 수 있습니다.
자세한 내용은 역할 수정을 참조하세요.
권한 정책을 추가하는 방법
AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
역할 페이지로 이동합니다.
-
aurora-data-loader와 같이 IAM 역할 만들기에서 만든 IAM 역할을 선택합니다.
-
권한 탭의 권한 정책에서 권한 추가를 선택한 다음 인라인 정책 생성을 선택합니다.
-
권한 지정 페이지에서 JSON 편집기를 선택합니다.
-
다음 템플릿을 복사하여 JSON 편집기에 붙여넣고 자리 표시자를 데이터베이스 보안 암호 및 KMS 키의 ARN으로 바꿉니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Ec2Permission", "Effect": "Allow", "Action": [ "ec2:DescribeNetworkInterfaces", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfacePermissions", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DescribeNetworkInterfaceAttribute", "ec2:DescribeAvailabilityZones", "ec2:DescribeRegions", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkAcls" ], "Resource": "*" }, { "Sid": "SecretsManagerPermissions", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:
123456789012
:secret:source_DB_secret-ABC123
", "arn:aws:secretsmanager:us-east-1:123456789012
:secret:destination_DB_secret-456DEF
" ] }, { "Sid": "KmsPermissions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-1:123456789012
:key/aa11bb22-####-####-####-fedcba123456
" }, { "Sid": "RdsPermissions", "Effect": "Allow", "Action": [ "rds:DescribeDBClusters", "rds:DescribeDBInstances" ], "Resource": "*" } ] } -
오류를 확인하고 수정합니다.
-
Next(다음)를 선택합니다.
-
검토 및 생성 페이지에 정책 이름(예:
data_loading_policy
)을 입력한 후 정책 생성을 선택합니다.