Base Database Service에서 Azure Active Directory 인증 사용
Microsoft Azure Active Database 인증 및 권한 부여를 사용하여 Azure AD 사용자가 Azure AD 인증서로 데이터베이스에 액세스할 수 있도록 Base Database Service에서 Oracle AI Database를 구성할 수 있습니다.
Azure AD와 Base Database Service 통합 정보
Microsoft Azure Active Directory(Azure AD) 사용자가 Azure OAuth2 액세스 토큰을 사용하여 연결할 수 있도록 Base Database Service 인스턴스의 Oracle AI Database를 구성할 수 있습니다.
Azure AD 사용자, 아키텍처, 사용자 매핑, 사용 사례 및 통합 프로세스에 대한 권한 부여에 대한 자세한 내용은 Oracle AI Database Security Guide의 Authenticating and Authorizing Microsoft Azure Users for Oracle AI Databases 섹션을 참조하십시오.
선행 조건
Base Database Service에서 Azure AD 인증을 사용하려면 다음 필요 조건이 필요합니다.
이러한 각 요소는 다음 항목에서 자세히 설명합니다.
네트워크 설정
데이터베이스에서 Azure AD 인증을 사용하기 전에 네트워킹 서비스를 사용하여 서비스 게이트웨이, 라우팅 규칙 및 송신 보안 규칙을 VCN(가상 클라우드 네트워크) 및 데이터베이스 리소스가 상주하는 서브넷에 추가해야 합니다. NAT 게이트웨이를 사용하여 Azure AD에 대한 아웃바운드 접속을 구성하려면 다음 단계를 수행합니다.
- VCN에서 서비스 게이트웨이 생성의 지침에 따라 데이터베이스 리소스가 상주하는 NAT 게이트웨이를 생성합니다.
-
서비스 게이트웨이를 생성한 후 데이터베이스 리소스가 상주하는 각 서브넷(VCN 내)에 경로 규칙 및 송신 보안 규칙을 추가하여 해당 리소스가 게이트웨이를 사용하여 Azure AD 인스턴스에서 퍼블릭 키를 가져와 Azure AD 인증을 사용할 수 있도록 합니다.
- 서브넷의 서브넷 세부 정보 페이지로 이동합니다.
- 서브넷 정보 탭에서 서브넷의 경로 테이블 이름을 눌러 해당 경로 테이블 세부정보 페이지를 표시합니다.
-
기존 경로 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
- 대상: 0.0.0.0/0
- 대상 유형: NAT 게이트웨이
- 대상: VCN에서 방금 생성한 서비스 게이트웨이의 이름입니다.
해당 규칙이 없는 경우 경로 규칙 추가를 선택하고 해당 특성을 가진 경로 규칙을 추가합니다.
- 서브넷에 대한 서브넷 세부정보 페이지로 돌아갑니다.
- 서브넷의 보안 목록 테이블에서 서브넷의 보안 목록 이름을 눌러 해당 보안 목록 세부정보 페이지를 표시합니다.
- 사이드 메뉴의 리소스에서 송신 규칙을 선택합니다.
-
기존 송신 규칙의 테이블에서 다음 특성을 가진 규칙이 이미 있는지 확인합니다.
- 대상 유형: CIDR
- 대상: 0.0.0.0/0
- IP Protocol(IP 프로토콜): TCP
- 소스 포트 범위: 443
- 대상 포트 범위: 모두
- 해당 규칙이 없는 경우 송신 규칙 추가를 선택하고 이러한 특성을 가진 송신 규칙을 추가합니다.
TLS 구성
데이터베이스 클라이언트에서 데이터베이스 서버로 Azure AD 토큰을 전송할 때는 TLS 연결을 설정해야 합니다.When sending Azure AD tokens from the database client to the database server, a TLS connection must be established. Base Database Service 인스턴스에 대한 데이터베이스 인증서가 있는 TLS 전자 지갑은 WALLET_ROOT 위치에 저장되어야 합니다. 다음과 같이 표시되도록 tls 디렉토리를 생성합니다. WALLET_ROOT/<PDB GUID>/tls
데이터베이스 클라이언트와 서버 간에 TLS를 구성할 때 고려해야 할 몇 가지 옵션이 있습니다.
- 자체 서명된 데이터베이스 서버 인증서와 일반적으로 알려진 인증 기관에서 서명한 데이터베이스 서버 인증서 사용
- 단방향 TLS(Tone-way TLS) vs 상호 또는 양방향 TLS(mutual or two-way TLS, mTLS)
- 전자 지갑이 있거나 없는 클라이언트입니다.
자체 서명된 인증서: 자체 서명된 인증서를 사용하는 것은 자체적으로 만들 수 있고 무료이므로 내부적으로 직면하는 IT 리소스에 대한 일반적인 관행입니다. 리소스(이 경우 데이터베이스 서버)에는 데이터베이스 클라이언트에 대해 자체적으로 인증할 자체 서명된 인증서가 있습니다. 자체 서명된 인증서와 루트 인증서가 데이터베이스 서버 전자 지갑에 저장됩니다. 데이터베이스 클라이언트가 데이터베이스 서버 인증서를 인식할 수 있으려면 클라이언트에도 루트 인증서의 복사본이 필요합니다. 자체 생성된 이 루트 인증서는 클라이언트측 전자 지갑에 저장하거나 클라이언트 시스템 기본 인증서 저장소에 설치할 수 있습니다(Windows 및 Linux에만 해당). 세션이 설정되면 데이터베이스 클라이언트는 데이터베이스 서버가 보낸 인증서가 동일한 루트 인증서로 서명되었는지 확인합니다.
잘 알려진 인증 기관: 일반적으로 알려진 루트 인증 기관을 사용하면 루트 인증서가 클라이언트 시스템 기본 인증서 저장소에 이미 저장되어 있을 가능성이 높다는 점에서 몇 가지 이점이 있습니다. 클라이언트가 공통 루트 인증서인 경우 루트 인증서를 저장하기 위한 추가 단계는 없습니다. 단점은 일반적으로 관련 비용이 있다는 것입니다.
단방향 TLS: 표준 TLS 세션에서 서버만 자체 인증을 위해 클라이언트에 인증서를 제공합니다. 클라이언트는 서버에 자신을 인증하기 위해 별도의 클라이언트 인증서를 가질 필요가 없습니다(HTTPS 세션 설정 방식과 유사). 데이터베이스에는 서버 인증서를 저장하기 위한 전자 지갑이 필요하지만, 서버 인증서 서명에 사용되는 루트 인증서만 클라이언트에 필요합니다.
양방향 TLS(상호 TLS, mTLS라고도 함): mTLS에서 클라이언트와 서버는 모두 서로에 제공되는 ID 인증서를 가지고 있습니다. 대부분의 경우 동일한 루트 인증서가 이러한 인증서를 모두 서명하므로 데이터베이스 서버와 클라이언트에서 동일한 루트 인증서를 사용하여 다른 인증서를 인증할 수 있습니다. 사용자 ID가 인증서를 통해 데이터베이스 서버에 의해 인증되기 때문에 mTLS가 사용자를 인증하는 데 사용되는 경우가 있습니다. 이는 Azure AD 토큰을 전달하는 데 필요하지 않지만 Azure AD 토큰을 전달할 때 사용할 수 있습니다.
전자 지갑이 있는 클라이언트: 클라이언트 인증서를 저장하기 위해 mTLS를 사용하는 경우 클라이언트 전자 지갑은 필수입니다. 그러나 루트 인증서는 동일한 전자 지갑 또는 시스템 기본 인증서 저장소에 저장할 수 있습니다.
전자 지갑이 없는 클라이언트: 다음 조건에서 TLS를 사용할 때 전자 지갑 없이 클라이언트를 구성할 수 있습니다.
-
클라이언트가 자체 인증서를 가지고 있지 않은 경우 단방향 TLS가 구성되고 있습니다.
-
데이터베이스 서버 인증서에 서명한 루트 인증서는 시스템 기본 인증서 저장소에 저장됩니다. 서버 인증서가 일반 인증 기관에서 서명한 경우 루트 인증서가 이미 존재할 수 있습니다. 자체 서명된 인증서인 경우 클라이언트 전자 지갑 사용을 방지하기 위해 루트 인증서를 시스템 기본 인증서 저장소에 설치해야 합니다.
앞에서 설명한 옵션을 포함하여 데이터베이스 클라이언트와 데이터베이스 서버 간에 TLS를 구성하는 방법에 대한 자세한 내용은 Configuring Transport Layer Security Authentication을 참조하십시오.
자체 서명된 인증서를 사용하도록 선택하고 추가 전자 지갑 관련 작업을 선택하는 경우 Database Security Guide의 orapki CLI(명령줄 인터페이스) 참조 설명서를 참조하십시오. PKI(공개 키 기반 구조) 요소 관리를 참조하십시오.
Azure AD와의 통합을 위해 Base Database Service 구성
Azure AD와 Base Database Service를 통합하려면 데이터베이스가 Azure AD 공개 키를 요청할 수 있도록 Azure AD에 데이터베이스를 등록해야 합니다.
Azure AD와의 통합을 위해 Base Database Service를 구성하려면 먼저 필요 조건 섹션에서 필요 조건을 완료한 다음 Oracle AI Database Security Guide의 Configuring the Oracle AI Database for Microsoft Azure AD Integration 섹션에 있는 지침을 따라야 합니다.
Oracle AI Database 스키마 및 역할 매핑
Azure AD 사용자는 하나의 데이터베이스 스키마에 매핑되고, 선택적으로 하나 이상의 데이터베이스 롤에 매핑됩니다.
Oracle AI Database 스키마 및 역할을 Azure AD 사용자에게 매핑하는 옵션에 대한 자세한 내용은 Oracle AI Database Security Guide의 Mapping Oracle AI Database Schemas and Roles 섹션을 참조하십시오.
Azure AD에 대한 클라이언트 연결 구성
Azure AD 토큰을 사용하여 Base Database Service 인스턴스와 연결하도록 클라이언트를 구성할 수 있는 방법은 여러 가지가 있습니다.
Azure AD 클라이언트 연결 구성에 대한 자세한 내용은 Oracle AI Database Security Guide의 Configuring Azure AD Client Connections to the Oracle AI Databases 절을 참조하십시오.
Azure 끝점의 접근성 테스트
Base Database 인스턴스가 연결 테스트를 실행하여 Azure AD 엔드포인트에 액세스할 수 있는지 확인할 수 있습니다.
연결 테스트에 대한 자세한 내용은 Oracle AI Database 보안 설명서의 Azure 끝점의 접근성 테스트 섹션을 참고하세요.
연결 문제 해결에 사용되는 Trace File
추적 파일을 사용하여 Azure AD 연결을 사용하는 Base Database Service 클라이언트 연결 문제를 해결할 수 있습니다.
추적 파일 및 토큰 인증을 위한 클라이언트 추적 설정에 대한 자세한 내용은 Oracle AI Database Security Guide의 Trace Files for Troubleshooting Oracle Database Client Connections with Azure AD 섹션을 참조하십시오.