메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

AWS CloudHSM과 함께 사용할 Amazon RDS 설치

Oracle TDE를 지원하는 Oracle DB 인스턴스와 함께 AWS CloudHSM을 사용하려면 다음 작업이 먼저 수반되어야 합니다.

  • Oracle DB 인스턴스와 연동된 보안 그룹이 HSM 포트 1792에 대한 액세스를 허용하는지 확인합니다.

  • VPC에서 HSM이 사용하는 것과 동일한 서브넷을 사용할 DB 서브넷 그룹을 생성한 다음 이 서브넷 그룹을 Oracle DB 인스턴스에 할당합니다.

  • Amazon RDS CLI를 설치합니다.

  • Amazon RDS가 AWS CloudHSM에 액세스할 때 사용할 IAM 권한을 추가합니다.

  • Amazon RDS CLI를 사용하는 Oracle DB 인스턴스와 연동된 옵션 그룹에 TDE_HSM 옵션을 추가합니다.

  • AWS CloudHSM을 사용할 Oracle DB 인스턴스에 새로운 DB 인스턴스 파라미터 2개를 추가합니다. tde-credential-arn 파라미터는 create-hapg 명령에서 반환되는 고가용성(HA) 파티션 그룹의 Amazon 리소스 번호(ARN)입니다. 그리고 tde-credential-password는 HA 파티션 그룹을 초기화하면서 사용한 파티션 암호입니다.

Amazon RDS CLI 문서는 AWS Command Line Interface란 무엇입니까?AWS Command Line Interface로 설정 단원에서 찾을 수 있습니다. AWS CLI 사용에 관한 일반 지침은 AWS Command Line Interface 사용에서 확인할 수 있습니다.

다음 단원에서는 Amazon RDS CLI를 설치하는 방법부터 RDS에 액세스하기 위해 RDS에 필요한 권한을 추가하는 방법, TDE_HSM 옵션이 포함된 옵션 그룹을 만드는 방법, 그리고 TDE_HSM 옵션을 사용할 DB 인스턴스를 만들거나 수정하는 방법까지 살펴보겠습니다.

보안 그룹

RDS 인스턴스에서 HSM과 통신할 수 있도록 하려면 HSM 어플라이언스에 지정된 보안 그룹 ENI에서 DB 인스턴스에서 TCP 포트 1792에 대한 수신 규칙을 허가해야 합니다. 또한 HSM의 ENI와 연결된 네트워크 ACL에서 RDS 인스턴스에서 들어오는 TCP 포트 1792 수신 연결과 HSM에서 RDS 인스턴스의 동적 포트 범위로 나가는 송신 연결을 허용해야 합니다. 동적 TCP 포트 범위에 대한 자세한 내용은 Amazon VPC 문서를 참조하십시오.

AWS CloudFormation 템플릿을 사용하여 AWS CloudHSM 환경을 만든 경우에는 퍼블릭 서브넷의 SSH와 NTLS를 허용하는 보안 그룹을 수정합니다. AWS CloudFormation 템플릿을 사용하지 않은 경우에는 ENI를 HSM 어플라이언스에 할당하여 연동되어 있는 보안 그룹을 변경합니다.

DB 서브넷 그룹

Oracle DB 인스턴스에 할당한 DB 서브넷 그룹은 VPC에서 CloudHSM이 사용하는 것과 동일한 서브넷으로 구성되어야 합니다. DB 서브넷 그룹의 생성 방법에 대한 자세한 내용은 DB 서브넷 그룹 생성을 참조하십시오. 또는 AWS CLI create-db-subnet-group 명령을 사용하여 DB 서브넷 그룹을 생성할 수도 있습니다.

Amazon RDS CLI 설치

Amazon RDS CLI는 Linux 또는 Windows 운영 체제를 기반으로 Java 1.6 이상이 설치되어 있는 컴퓨터에 설치할 수 있습니다.

다음은 Amazon RDS CLI를 설치 및 구성하기 위한 단계입니다.

  1. Amazon RDS CLI를 여기에서 다운로드합니다. 파일 압축을 풉니다.

  2. 다음 환경 변수를 설정합니다.

    Copy
    AWS_RDS_HOME - <The directory where the deployment files were copied to> JAVA_HOME - <Java Installation home directory>

    환경 변수의 올바른 설정 여부는 Linux 또는 Windows에서 다음 명령을 실행하여 확인할 수 있습니다. describe-db-instances 및 기타 AWS AWS CLI 명령이 입력되어야 합니다.

    Linux, OS X, Unix의 경우:

    Copy
    ls ${AWS_RDS_HOME}/bin

    Windows의 경우:

    Copy
    dir %AWS_RDS_HOME%\bin
  3. ${AWS_RDS_HOME}/bin(Linux) 또는 %AWS_RDS_HOME%\bin(Windows)을 경로에 추가합니다.

  4. AWS 리전의 RDS 서비스 URL 정보를 셸 구성에 추가합니다. 예:

    Copy
    export RDS_URL=https://rds.us-east-1.amazonaws.com export SERVICE_SIG_NAME=rds
  5. Linux 시스템 사용자는 다음 명령을 사용하여 bin 디렉터리의 모든 파일에 대한 실행 권한을 설정합니다.

    Copy
    chmod +x ${AWS_RDS_HOME}/bin/*
  6. Amazon RDS CLI에 AWS 사용자 자격 증명을 입력합니다. 자격 증명 입력은 AWS 키 또는 X.509 인증서를 사용하는 2가지 방법이 있습니다.

    AWS 키를 사용하는 경우는 다음과 같습니다.

    1. 압축 파일에 저장된 자격 증명 파일인 ${AWS_RDS_HOME}/credential-file-path.template을 편집하여 AWS 자격 증명을 추가합니다. Linux 시스템 사용자는 다음과 같이 사용 권한을 자격 증명 파일 소유자로 제한합니다.

      Copy
      $ chmod 600 <credential file>
    2. 그 밖에도 모든 명령에 다음 옵션을 추가할 수 있습니다.

      Copy
      aws rds <AWSCLIcommand> --aws-credential-file <credential file>
    3. 또는 명령줄에 다음과 같이 자격 증명을 명시적으로 지정할 수 있습니다. --I ACCESS_KEY --S SECRET_KEY

    X.509 인증서를 사용하는 경우는 다음과 같습니다.

    1. 인증서와 개인 키를 파일로 저장합니다(예: my-cert.pem, my-pk.pem).

    2. 다음 환경 변수를 설정합니다.

      Copy
      EC2_CERT=<path_to_my_cert> EC2_PRIVATE_KEY=<path_to_my_private_key>
    3. 또는 모든 명령마다 파일을 명령줄에 직접 지정할 수 있습니다.

      Linux, OS X, Unix의 경우:

      Copy
      aws rds <AWSCLIcommand> \ --ec2-cert-file-path <path_to_my_cert> \ --ec2-private-key-file-path <path_to_my_private_key>

      Windows의 경우:

      Copy
      aws rds <AWSCLIcommand> ^ --ec2-cert-file-path <path_to_my_cert> ^ --ec2-private-key-file-path <path_to_my_private_key>

AWS CLI의 올바른 설치 여부는 다음 명령을 실행하여 테스트할 수 있습니다. 첫 번째 명령은 모든 Amazon RDS 명령의 사용 방법 페이지를 출력합니다. 두 번째 명령은 사용 계정의 모든 DB 인스턴스에 대한 정보를 출력합니다.

Copy
aws rds --help aws rds describe-db-instances --headers

Amazon RDS가 AWS CloudHSM에 액세스하는 IAM 권한 추가하기

단일 AWS 계정을 사용하여 Amazon RDS 및 AWS CloudHSM 작업을 하거나 두 개의 개별 계정을 Amazon RDS와 AWS CloudHSM에 하나씩 사용할 수 있습니다. 이 섹션에서는 두 가지 프로세스에 대한 정보를 살펴보겠습니다.

Amazon RDS 단일 계정이 AWS CloudHSM API에 액세스할 수 있도록 IAM 권한 추가하기

Amazon RDS가 AWS CloudHSM API에 액세스할 때 사용하는 IAM 역할을 만들려면 다음 절차를 사용합니다. Amazon RDS는 AWS CloudHSM을 사용할 DB 인스턴스를 만들거나 수정할 때 IAM 역할의 유무를 검사합니다.

Amazon RDS가 AWS CloudHSM API에 액세스하는 IAM을 생성하려면

  1. https://console.aws.amazon.com에서 IAM 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 [Roles(역할)]를 클릭합니다.

  3. [Create New Role]을 클릭합니다.

  4. [Role Name] 텍스트 상자에 RDSCloudHsmAuthorization을 입력합니다. 현재는 이 이름을 사용해야 합니다. [Next Step]을 클릭합니다.

  5. [AWS Service Roles(AWS 서비스 역할)]를 클릭하고, Amazon RDS까지 스크롤하고, [Select(선택)]를 선택합니다.

  6. [Attach Policy] 페이지에서 [Next Step]을 클릭합니다. 이 역할에는 이미 올바른 정책이 연결되어 있습니다.

  7. 정보를 검토한 후 Create Role을 클릭합니다.

Amazon RDS가 CloudHSM에 액세스하도록 개별 AWS CloudHSM 및 Amazon RDS 계정 사용하기

AWS CloudHSM 및 Amazon RDS 리소스를 개별적으로 관리하려면 개별 개정으로 두 가지 서비스를 사용할 수 있습니다. 두 개의 계정을 사용하려면 다음 단원의 설명에 따라 각 계정을 설정해야 합니다.

두 개의 계정을 사용하려면 다음이 필요합니다.

  • AWS CloudHSM 서비스에 대해 활성화되어 있고 하드웨어 보안 모듈(HSM) 디바이스의 소유주인 계정. 일반적으로 이 계정은 고객 ID가 HSM_ACCOUNT_ID인 CloudHSM 계정입니다.

  • Oracle TDE를 사용하는 DB 인스턴스를 생성 및 관리하는 데 사용할 수 있는 Amazon RDS 계정. 일반적으로 이 계정은 고객 ID가 ID DB_ACCOUNT_ID인 DB 계정입니다.

CloudHSM 계정으로 CloudHSM 리소스에 액세스하기 위한 DB 계정 권한을 추가하려면

  1. https://console.aws.amazon.com/에서 IAM Console을 엽니다.

  2. DB 계정을 사용하여 로그인합니다.

  3. 왼쪽 탐색 창에서 [Roles(역할)]를 선택합니다.

  4. [Create New Role(새 역할 만들기)]을 선택합니다.

  5. [Role Name(역할 이름]에 RDSCloudHsmAssumeAuthorization을 입력합니다. 현재 이 역할 이름을 사용해야 이 접근 방식을 사용할 수 있습니다. [Next Step(다음 단계)]을 클릭합니다.

  6. [AWS Service Roles(AWS 서비스 역할)]를 선택하고, Amazon RDS까지 스크롤하고, [Select(선택)]를 선택합니다.

  7. [Attach Policy(정책 연결)] 페이지에서 정책을 연결하지 않습니다. [Next Step(다음 단계)]을 클릭합니다.

  8. 정보를 검토한 후 [Create Role(역할 만들기)]을 선택합니다.

  9. 역할은 RDSCloudHsmAssumeAuthorization 역할을 선택합니다.

  10. 권한은 [Inline Policies(인라인 정책)]를 선택합니다. 링크를 제공하는 텍스트가 표시되면 [click here(여기를 클릭)]를 클릭합니다.

  11. [Set Permissions(권한 설정) 페이지에서 [Custom Policy(사용자 지정 정책)]를 선택한 다음 [Select(선택)]를 선택합니다.

  12. [Policy Name(정책 이름)]에 AssumeRole을 입력합니다.

  13. [Policy Document(정책 문서)]에 다음 정책 정보를 입력합니다.

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": "*" } ] }
  14. [Apply Policy(정책 적용)]를 선택한 다음 DB 계정에서 로그아웃합니다.

CloudHSM HSM 계정이 CloudHSM 계정에서 CloudHSM 리소스에 액세스하기 위한 권한을 신뢰하도록 수정하려면

  1. https://console.aws.amazon.com/에서 IAM Console을 엽니다.

  2. CloudHSM 계정을 사용하여 로그인합니다.

  3. 왼쪽 탐색 창에서 [Roles(역할)]를 선택합니다.

  4. RDSCloudHsmAuthorization 역할을 선택합니다. 이 역할은 단일 계정 CloudHSM-RDS에 대해 만들어진 역할입니다.

  5. [Edit Trust Relationship(신뢰 관계 편집)]을 선택합니다.

  6. DB 계정을 신뢰할 수 있는 계정으로 추가합니다. 정책 문서는 DB 계정이 <DB_ACCOUNT_ID> 자리 표시자를 대체하여 다음과 같이 보여야 합니다.

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com", "AWS":[ "arn:aws:iam::$<DB_ACCOUNT_ID>$:role/RDSCloudHsmAssumeAuthorization" ] }, "Action": "sts:AssumeRole" } ] }
  7. [Update Trust Policy(신뢰 정책 업데이트)]를 선택합니다.

HSM에 연결할 수 있는 DB 계정을 사용하여 Amazon VPC 생성

HSM 어플라이언스는 HSM별 Amazon VPC에 프로비저닝됩니다. 기본적으로 HSM VPC 내부의 호스트만 HSM 디바이스를 볼 수 있습니다. 따라서 모든 DB 인스턴스는 HSM VPC 내부 또는 VPC 피어링을 사용하여 HSM VPC에 연결할 수 있는 VPC에 생성해야 합니다.

다른 VPC(VPC에 DB 인스턴스 만들기의 설명에 따라 DB 계정에 생성)의 Amazon RDS DB 인스턴스를 통해 CloudHSM을 사용하려면 VPC 피어링을 DB 인스턴스가 포함된 VPC에서 HSM 어플라이언스가 포함된 HSM별 VPC로 변경 설정해야 합니다.

두 VPC 사이에서 VPC 피어링를 설정하려면

  1. DB 계정에 생성된 기존 VPC를 사용하거나 DB 계정을 사용하여 새 VPC를 생성합니다. VPC에는 HSM별 VPC의 CIDR 범위와 중복되는 CIDR 범위가 없어야 합니다.

  2. DB VPC와 HSM VPC 사이에서 VPC 피어링을 수행합니다. 지침은 Amazon Virtual Private Cloud 사용 설명서VPC 피어링을 참조하십시오.

  3. VPC 라우팅 테이블이 VPC 서브넷 및 HSM 네트워크 인터페이스의 VPC 보안 그룹과 올바로 연결되었는지 확인합니다.

네트워크 트래픽이 올바른 VPC로(DB VPC에서 HSM VPC로, HSM VPC에서 DB VPC로) 이동하도록 두 VPC의 라우팅 테이블을 모두 구성해야 합니다. 보안 그룹은 두 VPC 사이의 네트워크 트래픽을 막지 않아야 하지만 두 VPC는 같은 보안 그룹을 공유하지 않아도 됩니다.

TDE_HSM 옵션이 포함된 옵션 그룹 생성하기

TDE_HSM 옵션은 다른 Oracle 옵션과 마찬가지로 기존 옵션 그룹에 추가하거나, 새로운 옵션 그룹을 생성하여 TDE_HSM 옵션을 추가할 수도 있습니다. 다음 Amazon RDS CLI 예제는 Oracle Enterprise Edition 11.2에 tdehsm-option-group이라고 하는 옵션 그룹을 생성합니다.

Linux, OS X, Unix의 경우:

Copy
aws rds create-option-group \ --option-group-name tdehsm-option-group \ --option-group-description "Option Group with TDE_HSM" \ --engine-name oracle-ee \ --major-engine-version 11.2

Windows의 경우:

Copy
aws rds create-option-group ^ --option-group-name tdehsm-option-group ^ --option-group-description "Option Group with TDE_HSM" ^ --engine-name oracle-ee ^ --major-engine-version 11.2

명령이 출력된 모습은 다음 예제와 비슷해야 합니다.

Copy
OPTIONGROUP tdehsm-option-group oracle-ee 11.2 Option Group with TDE_HSM n

옵션 그룹이 생성되면 다음 명령을 사용해 TDE_HSM 옵션을 옵션 그룹에 추가할 수 있습니다.

Linux, OS X, Unix의 경우:

Copy
aws rds add-option-to-option-group \ --option-group-name tdehsm-option-group \ --option-name TDE_HSM

Windows의 경우:

Copy
aws rds add-option-to-option-group ^ --option-group-name tdehsm-option-group ^ --option-name TDE_HSM

명령이 출력된 모습은 다음 예제와 비슷해야 합니다.

Copy
OPTION TDE_HSM y n Oracle Advanced Security - TDE with HSM

AWS CloudHSM 파라미터를 Oracle DB 인스턴스에 추가하기

Oracle Enterprise Edition DB 인스턴스가 AWS CloudHSM을 사용하려면 2개의 파라미터가 추가되어야 합니다. tde-credential-arntde-credential-password는 새로운 DB 인스턴스를 생성하거나, 혹은 AWS CloudHSM을 사용하도록 기존 DB 인스턴스를 변경할 때 필요한 2가지 파라미터입니다.

AWS CloudHSM에 파라미터를 추가하여 새로운 Oracle DB 인스턴스 생성하기

AWS CloudHSM와 함께 사용할 DB 인스턴스를 새롭게 생성할 때는 다음과 같이 몇 가지 요건이 있습니다.

  • TDE_HSM 옵션이 추가된 옵션 그룹이 반드시 포함되어야 합니다.

  • tde-credential-arntde-credential-password 파라미터의 값을 입력해야 합니다. tde-credential-arn 파라미터 값은 create-hapg 명령에서 반환되는 HA 파티션 그룹의 Amazon 리소스 번호(ARN)입니다. 또한 list-hapgs 명령을 실행하여 모든 HA 파티션 그룹의 ARN을 가져올 수도 있습니다.

    그리고 tde-credential-password는 HA 파티션 그룹을 초기화하면서 사용한 파티션 암호입니다.

  • 교차 서비스에 대한 액세스가 가능한 IAM 역할은 반드시 생성해야 합니다.

  • Oracle Enterprise Edition DB 인스턴스도 생성해야 합니다.

다음 명령은 HsmInstance-test01이라는 이름의 새로운 Oracle Enterprise Edition DB 인스턴스를 생성합니다. 이 인스턴스에는 AWS CloudHSM 액세스가 가능하도록 2개의 파라미터가 포함되어 있으며, tdehsm-option-group이라는 옵션 그룹을 사용합니다.

Linux, OS X, Unix의 경우:

Copy
aws rds create-db-instance \ --db-instance-identifier HsmInstance-test01 \ --db-instance-class <instance class> \ --engine oracle-ee \ --tde-credential-arn <ha partition group ARN> \ --tde-credential-password <partition password> \ --db-name <Oracle DB instance name> \ --db-subnet-group-name <subnet group name> \ --connection-timeout <connection timeout value> \ --master-user-password <master user password> \ --master-username <master user name> \ --allocated-storage <storage value> \ --option-group-name <TDE option group>

Windows의 경우:

Copy
aws rds create-db-instance ^ --db-instance-identifier HsmInstance-test01 ^ --db-instance-class <instance class> ^ --engine oracle-ee ^ --tde-credential-arn <ha partition group ARN> ^ --tde-credential-password <partition password> ^ --db-name <Oracle DB instance name> ^ --db-subnet-group-name <subnet group name> ^ --connection-timeout <connection timeout value> ^ --master-user-password <master user password> ^ --master-username <master user name> ^ --allocated-storage <storage value> ^ --option-group-name <TDE option group>

명령이 출력된 모습은 다음 예제와 비슷해야 합니다.

Copy
DBINSTANCE hsminstance-test01 db.m1.medium oracle-ee 40 fooooo creating 1 **** n 11.2.0.2.v7 bring-your-own-license AL52UTF8 n VPCSECGROUP sg-922xvc2fd active SUBNETGROUP dev-test test group Complete vpc-3facfe54 SUBNET subnet-1fd6a337 us-east-1e Active SUBNET subnet-28aeff43 us-east-1c Active SUBNET subnet-5daeff36 us-east-1b Active SUBNET subnet-2caeff47 us-east-1d Active PARAMGRP default.oracle-ee-11.2 in-sync OPTIONGROUP tdehsm-option-group pending-apply

기존 DB 인스턴스를 변경하여 AWS CloudHSM 파라미터 추가하기

다음 명령은 Oracle Enterprise Edition DB 인스턴스를 변경하여 tde-credential-arntde-credential-password 파라미터를 추가합니다. 단, 이 명령에는 TDE_HSM 옵션이 추가된 옵션 그룹도 반드시 포함되어야 합니다.

Linux, OS X, Unix의 경우:

Copy
aws rds modify-db-instance \ --db-instance-identifier hsm03 \ --tde-credential-arn <ha partition group ARN> \ --tde-credential-password <partition password> \ --option-group <tde hsm option group> \ --apply-immediately

Windows의 경우:

Copy
aws rds modify-db-instance ^ --db-instance-identifier hsm03 ^ --tde-credential-arn <ha partition group ARN> ^ --tde-credential-password <partition password> ^ --option-group <tde hsm option group> ^ --apply-immediately

명령이 출력된 모습은 다음 예제와 비슷해야 합니다.

Copy
DBINSTANCE hsm03 2014-04-03T18:48:53.106Z db.m1.medium oracle-ee 40 fooooo available hsm03.c1iibpgwvdfo.us-east-1.rds.amazonaws.com 1521 us-east-1e 1 n 11.2.0.2.v7 bring-your-own-license AL32UTF8 n VPCSECGROUP sg-922dc2fd active SUBNETGROUP dev-test test group Complete vpc-3faffe54 SUBNET subnet-1fd6a337 us-east-1e Active SUBNET subnet-28aeff43 us-east-1c Active SUBNET subnet-5daeff36 us-east-1b Active SUBNET subnet-2caeff47 us-east-1d Active PARAMGRP default.oracle-ee-11.2 in-sync OPTIONGROUP tdehsm-option-group pending-apply OPTIONGROUP default:oracle-ee-11-2 pending-removal