액세스 관리를 위한 DBMS_CLOUD
필요 조건
개발자는 Oracle Public Cloud, 멀티클라우드 또는 Exadata Cloud@Customer에 배포된 Autonomous Database에서 DBMS_CLOUD 절차를 사용할 수 있습니다.
배포 선택에 따라 Amazon S3, Azure Blob Storage 및 Google Cloud Storage 서비스 제공업체와 함께 DBMS_CLOUD 절차를 사용하려면 다음 필요 조건이 충족되어야 합니다.
- Oracle Cloud Infrastructure 문서의 NAT 게이트웨이 생성 지침에 따라 Autonomous Database 리소스가 상주하는 VCN(가상 클라우드 네트워크)에서 NAT 게이트웨이를 생성합니다.
- NAT 게이트웨이를 생성한 후 각 서브넷(VCN 내)에 경로 규칙 및 송신 보안 규칙을 추가합니다. 여기서 Autonomous Database 리소스는 게이트웨이를 사용하여 Azure AD 인스턴스에서 퍼블릭 키를 얻을 수 있습니다.
- 서브넷의 서브넷 세부 정보 페이지로 이동합니다.
- 서브넷 정보 탭에서 서브넷의 경로 테이블 이름을 눌러 경로 테이블 세부정보 페이지를 표시합니다.
- 기존 경로 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
- 대상: 0.0.0.0/0
- 대상 유형: NAT 게이트웨이
- 대상: VCN에서 방금 생성한 NAT 게이트웨이의 이름입니다.
해당 규칙이 없는 경우 경로 규칙 추가를 누르고 해당 특성을 가진 경로 규칙을 추가합니다.
- 서브넷에 대한 서브넷 세부정보 페이지로 돌아갑니다.
- 서브넷의 보안 목록 테이블에서 서브넷의 보안 목록 이름을 눌러 해당 보안 목록 세부정보 페이지를 표시합니다.
- 사이드 메뉴의 리소스에서 송신 규칙을 누릅니다.
- 기존 송신 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
- 대상 유형: CIDR
- 대상: 0.0.0.0/0
- IP 프로토콜: TCP
- 소스 포트 범위: 443
- 대상 포트 범위: 모두
해당 규칙이 없으면 Add Egress Rules를 누르고 이러한 특성을 가진 송신 규칙을 추가합니다.
환경의 HTTP 프록시 설정에서 데이터베이스가 클라우드 서비스 공급자에 액세스할 수 있도록 허용해야 합니다.
주:
HTTP 프록시를 포함한 네트워크 구성은 Exadata 인프라가 활성화 필요 상태가 될 때까지만 편집할 수 있습니다. 활성화된 후에는 해당 설정을 편집할 수 없습니다.이미 프로비전된 Exadata 인프라에 대해 HTTP 프록시를 설정하려면 My Oracle Support에서 SR(서비스 요청)이 필요합니다. 자세한 내용은 My Oracle Support에서 서비스 요청 생성을 참조하십시오.
액세스 관리를 위한 DBMS_CLOUD 하위 프로그램
인증서 생성, 삭제 및 업데이트를 포함하여 DBMS_CLOUD 패키지 내의 인증서 관리를 위한 하위 프로그램입니다.
하위 프로그램 | 설명 |
---|---|
이 절차에서는 클라우드 서비스 자격 증명을 Autonomous Database에 저장합니다. | |
이 절차에서는 Autonomous Database에서 기존 인증서를 제거합니다. | |
이 절차에서는 Autonomous Database의 클라우드 서비스 자격 증명 속성을 업데이트합니다. |
CREATE_CREDENTIAL 프로시저
이 절차에서는 클라우드 서비스 자격 증명을 Autonomous Database에 저장합니다.
저장된 클라우드 서비스 자격 증명을 사용하여 데이터 로드를 위해 클라우드 서비스에 액세스하거나, 클라우드에 상주하는 외부 데이터를 질의하거나, credential_name
매개변수와 함께 DBMS_CLOUD
프로시저를 사용하는 경우 기타 경우에 액세스합니다.
구문
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
username IN VARCHAR2,
password IN VARCHAR2 DEFAULT NULL);
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name IN VARCHAR2,
user_ocid IN VARCHAR2,
tenancy_ocid IN VARCHAR2,
private_key IN VARCHAR2,
fingerprint IN VARCHAR2);
매개변수
매개변수 | 설명 |
---|---|
|
저장할 인증서의 이름입니다. |
|
|
|
|
|
사용자의 OCID를 지정합니다. 사용자 OCID를 얻는 방법은 테넌시의 OCID 및 사용자의 OCID를 가져올 위치를 참조하십시오. |
|
테넌시의 OCID를 지정합니다. 테넌시의 OCID를 가져오는 방법은 테넌시의 OCID 및 사용자의 OCID를 가져올 위치를 참조하십시오. |
|
생성된 프라이빗 키를 지정합니다. 비밀번호 구문으로 생성된 프라이빗 키는 지원되지 않습니다. 문장암호 없이 개인 키를 생성해야 합니다. PEM 형식의 키 쌍 생성에 대한 자세한 내용은 API 서명 키를 생성하는 방법을 참조하십시오. |
|
지문을 지정합니다. 생성된 공개 키가 사용자 계정에 업로드되면 지문이 콘솔에 표시됩니다. 이 인수에 표시된 지문을 사용하십시오. 자세한 내용은 How to Get the Key's Fingerprint 및 How to Generate an API Signing Key을 참조하십시오. |
사용법 참고
-
이 작업은 인증서를 암호화된 형식으로 데이터베이스에 저장합니다.
-
user_credentials
테이블을 query하여 스키마에서 인증서를 볼 수 있습니다. -
ADMIN
사용자는dba_credentials
테이블을 질의하여 모든 인증서를 볼 수 있습니다. -
클라우드 서비스 인증서가 변경되지 않는 한 인증서를 한 번만 생성하면 됩니다. 자격 증명을 저장한 후에는
credential_name
매개변수가 필요한DBMS_CLOUD
프로시저에 동일한 자격 증명 이름을 사용할 수 있습니다. -
이 프로시저는 오버로드됩니다. 키 기반 인증 속성
user_ocid
,tenancy_ocid
,private_key
또는fingerprint
중 하나를 제공하는 경우 호출이 Oracle Cloud Infrastructure 서명 키 기반 인증서로 간주됩니다. -
ALL_CREDENTIALS
뷰에서 인증서를 나열할 수 있습니다. 예를 들어, 다음 명령을 실행하여 자격 증명을 나열합니다.SELECT credential_name, username, comments FROM all_credentials;
Oracle Cloud Infrastructure 인증서(Auth 토큰)
Oracle Cloud Infrastructure의 경우 username
은 Oracle Cloud Infrastructure 사용자 이름입니다. password
은 Oracle Cloud Infrastructure 인증 토큰입니다. 인증 토큰 작업을 참조하십시오.
예:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL
(
credential_name => 'DEF_CRED_NAME',
username => 'adb_user@example.com',
password => 'password' );
END;
/
OCI Object Storage에 대한 호출을 인증하는 경우 인증 토큰 기반 인증서를 사용합니다. 다른 유형의 Oracle Cloud Infrastructure 클라우드 서비스에 대한 호출의 경우 Oracle Cloud Infrastructure 서명 키 기반 인증서를 사용합니다.
Oracle Cloud Infrastructure 서명 키 기반 인증서
Oracle Cloud Infrastructure 서명 키 관련 매개변수(user_ocid
, tenancy_ocid
, private_key
, fingerprint
및 Oracle Cloud Infrastructure 서명 키 인증 포함)를 사용합니다.
예:
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
credential_name => ‘OCI_KEY_CRED’,
user_ocid => ‘ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa’,
tenancy_ocid => ‘ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a’,
private_key => ‘MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=’,
fingerprint => ‘f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27’);
END;
/
비밀번호 구문으로 생성된 프라이빗 키는 지원되지 않습니다. 문장암호 없이 개인 키를 생성해야 합니다. 자세한 내용은 How to Generate an API Signing Key을 참조하십시오.
AWS(Amazon Web Services) 인증서
소스 파일이 Amazon S3에 있거나 AWS API를 호출하는 경우 username
는 AWS 액세스 키 ID이고 password
은 AWS 보안 액세스 키입니다. AWS Identity and Access Management를 참조하십시오.
Microsoft Azure 인증서
소스 파일이 Azure Blob Storage에 있거나 Azure API를 호출하는 경우 username
는 Azure 스토리지 계정 이름이고 password
는 Azure 스토리지 계정 액세스 키입니다. Azure 스토리지 계정 정보를 참조하십시오.
DROP_CREDENTIAL 프로시저
이 절차에서는 Autonomous Database에서 기존 인증서를 제거합니다.
구문
DBMS_CLOUD.DROP_CREDENTIAL
(
credential_name IN VARCHAR2);
매개변수
매개변수 | 설명 |
---|---|
|
제거할 인증서의 이름입니다. |
UPDATE_CREDENTIAL 프로시저
이 절차에서는 지정된 credential_name
에 대한 새 값으로 속성을 업데이트합니다.
데이터 로드, 클라우드에 상주하는 외부 데이터 질의 또는 DBMS_CLOUD
프로시저를 credential_name
매개변수와 함께 사용하는 모든 위치에서 저장된 인증서를 사용합니다.
구문
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name IN VARCHAR2,
attribute IN VARCHAR2,
value IN VARCHAR2);
매개변수
매개변수 | 설명 |
---|---|
|
업데이트할 인증서의 이름입니다. |
|
업데이트할 속성의 이름입니다. 사용자 이름/비밀번호 유형 인증서의 경우 적합한 자세한 내용은 CREATE_CREDENTIAL Procedure를 참조하십시오. |
|
지정된 속성에 대한 새 값입니다. |
사용법 참고
-
사용자 이름 값은 대소문자를 구분합니다. 큰 따옴표나 공백을 포함할 수 없습니다.
-
ADMIN
사용자는dba_credentials
를 질의하여 모든 인증서를 볼 수 있습니다. -
클라우드 서비스 인증서가 변경되지 않는 한 인증서를 한 번만 생성하면 됩니다. 자격 증명을 저장한 후에는
credential_name
매개변수가 필요한DBMS_CLOUD
프로시저에 동일한 자격 증명 이름을 사용할 수 있습니다. -
ALL_CREDENTIALS
뷰에서 인증서를 나열할 수 있습니다. 예를 들어, 다음 명령을 실행하여 자격 증명을 나열합니다.SELECT credential_name, username, comments FROM all_credentials;
예
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'OBJ_STORE_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'ARN_CRED',
attribute => 'aws_role_arn',
value => 'NEW_AWS_ARN');
END;
/