Kerberos로 자율운영 AI 데이터베이스 사용자 인증

Kerberos 네트워크 인증 프로토콜을 사용하여 데이터베이스 사용자를 인증하도록 전용 Exadata 인프라의 자율운영 AI 데이터베이스를 구성할 수 있습니다. Kerberos는 강력한 네트워크 인증 프로토콜입니다. 암호 키 암호화를 사용하여 사용자-서버 인증을 제공하여 강력한 인증을 가능하게 합니다.

  • Kerberos에 대한 전용 Exadata 인프라의 자율운영 AI 데이터베이스 지원은 Oracle 사용자의 Single Sign-On 및 중앙 집중식 인증의 이점을 제공합니다. Kerberos는 신뢰받는 타사 인증 시스템으로 공유 암호를 사용합니다. 타사에서는 안전한 것으로 간주하고 Single Sign-On 기능, 중앙화된 암호 저장, 데이터베이스 링크 인증 및 향상된 PC 보안을 제공합니다. 이 작업은 Kerberos 인증 서버를 통해 수행됩니다.

  • Kerberos 시스템은 티켓 개념을 중심으로 회전합니다. 티켓은 사용자나 서비스를 식별하는 전자 정보 세트입니다. 티켓은 사용자와 사용자의 네트워크 액세스 권한을 식별합니다.

  • Kerberos 기반 인증에서는 티켓 요청을 투명하게 KDC(키 배포 센터)로 보냅니다. Key Distribution Center에서 사용자를 인증하고 데이터베이스에 액세스할 수 있는 티켓을 부여합니다.

Kerberos 인증 시스템의 구성 요소

Kerberos 인증 시스템에 대한 개요를 제공합니다.

  • 영역은 인증 관리 도메인을 설정합니다. 각 영역에는 해당 특정 관리 도메인에 대한 사용자 및 서비스를 포함하는 고유한 Kerberos 데이터베이스가 있습니다.

  • 티켓은 KDC(키 배포 센터)에서 발행합니다. 클라이언트는 ID의 신뢰성을 입증하기 위해 데이터베이스 서버에 티켓을 제공합니다. 각 티켓에는 만료 및 갱신 시간이 있습니다.

  • Keytabs는 하나 이상의 주체에 대한 장기 키를 저장합니다. keytab 파일은 kadmin.local 도구(MIT Key Distribution Center의 경우) 또는 ktpass(Active Directory Key Distribution Center의 경우)를 호출하여 생성됩니다.

  • 주체는 Key Distribution Center 데이터베이스에 있는 항목입니다. 각 사용자, 호스트 또는 서비스에는 주체가 지정됩니다. 주체는 키 배포 센터에서 티켓을 지정할 수 있는 고유 ID입니다.

  • Autonomous AI Database의 Kerberos 지원은 서비스 주체의 이름을 구성하는 다양한 구성요소에 다음 값을 사용합니다.

서비스 원금 구성요소 자율운영 AI 데이터베이스의 가치
kinstance

이 값은 V$PDBSCLOUD_IDENTITY 열에 있는 PUBLIC_DOMAIN_NAME 속성에서 가져올 수 있습니다. 이 값은 프라이빗 끝점의 데이터베이스에 대한 FQDN(정규화된 도메인 이름)과 다릅니다.

다음 질의를 사용하여 kinstance을 가져옵니다.

SELECT json_value(cloud_identity, '$.PUBLIC_DOMAIN_NAME') "KINSTANCE" FROM v$pdbs;

주:

TNS 접속 문자열에서 발견된 host 매개변수의 값이 됩니다.
kservice

자율운영 AI 데이터베이스에는 kservice 값에 대한 두 가지 옵션이 있습니다.

  • 데이터베이스 GUID 사용: DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION에 Kerberos 서비스 이름을 제공하지 않을 경우 사용되는 기본 서비스 이름은 자율운영 AI 데이터베이스 인스턴스의 GUID입니다. 이 경우 keytab 파일을 만들 때 GUID를 서비스 이름 값으로 사용합니다.

    기본적으로 Keytab 파일은 GUID(인스턴스별)인 서비스 이름을 사용하기 때문에 기본 서비스 이름을 사용하는 경우 각 자율운영 AI 데이터베이스 인스턴스에 대해 서로 다른 Keytab 파일을 생성해야 합니다.

    다음 명령을 사용하여 GUID을 가져옵니다(대소문자 구분).

    SELECT GUID FROM v$pdbs;
  • 사용자 정의 이름 사용: 여러 자율운영 AI 데이터베이스 인스턴스에서 동일한 Keytab 파일을 사용하려면 서비스 이름을 설정합니다. 사용자정의 이름을 사용하는 경우 각 자율운영 AI 데이터베이스 인스턴스에 대해 서로 다른 Keytab 파일을 생성하고 업로드할 필요가 없습니다. 사용자 정의 이름을 사용하는 경우 params kerberos_service_name 매개변수를 DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION와 함께 지정해야 합니다. 서비스 이름에 GUID를 사용할 때는 이 매개변수를 지정할 필요가 없습니다.

자율운영 AI 데이터베이스 인스턴스에서 Kerberos가 사용으로 설정된 후 다음 질의를 사용하여 Kerberos 서비스 이름을 확인합니다.

SELECT SYS_CONTEXT('USERENV', 'KERBEROS_SERVICE_NAME') FROM DUAL;
REALM KDC에서 지원하는 모든 영역입니다. REALM는 항상 대문자여야 합니다.

자율운영 AI 데이터베이스에 대해 Kerberos 인증을 사용으로 설정하려면 Kerberos 구성 파일(krb.conf) 및 서비스 키 테이블 파일(v5srvtab)을 준비 상태로 유지해야 합니다. 이러한 파일 및 파일 가져오기 단계에 대한 자세한 내용은 Configuring Kerberos Authentication을 참조하십시오.

자율운영 AI 데이터베이스의 Kerberos 인증에 대한 참고 사항

Autonomous AI Database on Dedicated Exadata Infrastructure에서 Kerberos 인증을 계속하기 전에 다음 참고 사항을 검토하십시오.

  • 자율운영 AI 데이터베이스에 대해 Kerberos 인증을 사용으로 설정하면 데이터베이스에 대해 비밀번호 기반 데이터베이스 인증을 계속 사용할 수 있습니다.
  • 자율운영 AI 데이터베이스에는 언제든지 하나의 외부 인증 방법만 사용할 수 있습니다. 즉, Oracle Cloud Infrastructure(IAM), CMU-AD(Centrally Managed User with Active Directory), Azure AD 또는 Kerberos 인증 체계만 언제든지 사용으로 설정할 수 있습니다.

    주:

    단, Microsoft Active Directory 사용자에 대한 CMU-AD Kerberos 인증을 제공하기 위해 CMU-AD를 기반으로 Kerberos 인증을 구성할 수 있습니다.
  • 다음 도구에는 Kerberos 인증이 지원되지 않습니다.
    • Oracle Database API for MongoDB
    • Oracle REST Data Services
    • Oracle Machine Learning
    • APEX
    • Oracle Graph 스튜디오
    • Oracle 데이터베이스 작업
  • Kerberos 인증을 사용으로 설정하여 ADMIN 사용자를 인증할 수 있습니다. Oracle Cloud Infrastructure(OCI) 콘솔에서 비밀번호 재설정 기능을 사용하여 ADMIN 사용자의 비밀번호를 재설정하고, 손상된 keytab 파일로 인해 ADMIN 사용자의 인증이 실패하는 경우 액세스 권한을 다시 얻을 수 있습니다.
  • Kerberos 인증은 Autonomous AI Database 버전 19.27 이상에 대한 TCP 프로토콜로 지원됩니다.
  • DB_LINKs 및 자율운영 Data Guard가 있는 데이터베이스에서는 Kerberos 인증이 지원되지 않습니다.

자율운영 AI 데이터베이스에서 Kerberos 인증 사용

아래 나열된 단계에 따라 전용 Exadata 인프라의 자율운영 AI 데이터베이스에 대해 Kerberos 인증을 사용으로 설정합니다.
  • 지정된 시간에 자율운영 AI 데이터베이스에 대해 하나의 외부 인증 체계만 사용으로 설정할 수 있으므로 DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION 프로시저를 실행하여 데이터베이스에 대해 이미 사용으로 설정된 외부 인증 체계를 사용 안함으로 설정합니다.

    프로시저를 실행하려면 ADMIN 사용자로 로그인하거나 DBMS_CLOUD_ADMIN에 대한 EXECUTE 권한이 있어야 합니다.
    BEGIN
        DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /
  • Kerberos 구성 파일(krb.conf) 및 서비스 키 테이블 파일(v5srvtab)을 가져옵니다. 이러한 파일 및 파일을 가져오는 데 필요한 단계에 대한 자세한 내용은 Oracle Database 19c Security GuideConfiguring Kerberos Authentication 또는 Oracle Database 26ai Security Guide를 참조하십시오.

  • Kerberos 구성 파일 krb.confv5srvtab를 객체 저장소의 버킷에 복사합니다.

    주:

    Oracle은 Kerberos 구성 파일을 객체 저장소의 프라이빗 버킷에 저장할 것을 권장합니다.

    Oracle Cloud Infrastructure Object Store를 사용하는 경우 파일 업로드에 대한 자세한 내용은 Object Storage에 데이터 넣기를 참조하십시오.

  • Kerberos를 Autonomous AI Database에 대한 외부 인증으로 사용으로 설정하려면 DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION 프로시저를 실행하고 params JSON 인수를 사용하여 위치 URI를 전달합니다. 구성 파일 krb.confv5srvtablocation_uri 매개변수에 지정된 오브젝트 스토리지 위치에 배치해야 합니다.

    예:
    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
            type     => 'KERBEROS',
            params   => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
                                   'credential_name' value 'my_credential_name')
        );
    END;
    /

    주:

    Microsoft Active Directory 사용자에 대해 CMU-AD Kerberos 인증을 제공하려면 위 예에서 typeCMU로 설정하여 CMU-AD에서 Kerberos 인증을 사용으로 설정할 수 있습니다.

    이 예에서 namespace-stringOracle Cloud Infrastructure 객체 스토리지 네임스페이스이고 bucketname은 버킷 이름입니다. 자세한 내용은 Understanding Object Storage Namespaces를 참조하십시오.

    이 단계에서 사용하는 credential_name은 객체 저장소에 대한 인증서입니다.

    location_uri가 사전 인증된 URL인 경우 credential_name을 제공할 필요가 없습니다.

    그러면 데이터베이스에 KERBEROS_DIR이라는 디렉토리 객체가 생성되고 인증서가 객체 저장소 위치에서 디렉토리 객체로 Kerberos 구성 파일을 다운로드하는 데 사용됩니다.

    kerberos_service_name 매개변수를 사용하여 Kerberos 서비스 이름을 지정할 수 있습니다. 예:
    BEGIN
    DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
       type     =>'KERBEROS',
       params   => JSON_OBJECT(
       'location_uri'          value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
       'credential_name'       value 'my_credential_name'
       'kerberos_service_name' value 'oracle' ));
    END;
    /
  • Kerberos 인증을 사용으로 설정한 후 객체 저장소에서 krb.confv5srvtab 구성을 제거합니다. 로컬 객체 저장소 메소드를 사용하여 이러한 파일을 제거하거나 DBMS_CLOUD.DELETE_OBJECT를 사용하여 객체 저장소에서 파일을 삭제할 수 있습니다.

오브젝트 스토리지에 대한 자세한 내용은 Oracle Cloud Infrastructure Object Storage 및 버킷 생성으로 이동을 참조하십시오.

자세한 내용은 ENABLE_EXTERNAL_AUTHENTICATION Procedure를 참조하십시오.

자율운영 AI 데이터베이스에서 Kerberos 인증 사용 안함

데이터베이스에서 다른 외부 인증 체계를 사용으로 설정하기 전에 DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION 프로시저를 실행하는 Kerberos 인증을 사용 안함으로 설정해야 합니다.

이 프로시저를 실행하려면 ADMIN 사용자로 로그인하거나 DBMS_CLOUD_ADMIN에 대한 EXECUTE 권한이 있어야 합니다.
BEGIN
    DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/
자세한 내용은 DISABLE_EXTERNAL_AUTHENTICATION Procedure를 참조하십시오.

주:

Microsoft Active Directory 사용자에 대해 CMU-AD Kerberos 인증을 제공하려면 Kerberos 인증을 사용 안함으로 설정하지 않고 CMU-AD 인증을 계속 구성해야 합니다.