자율운영 AI 데이터베이스를 통한 ID 및 액세스 관리(IAM) 인증 사용

IAM(Oracle Cloud Infrastructure Identity and Access Management) 인증 및 권한 부여를 사용하도록 자율운영 AI 데이터베이스를 구성하여 IAM 사용자가 IAM 인증서로 자율운영 AI 데이터베이스에 액세스할 수 있도록 할 수 있습니다.

참고: OCI(Oracle Cloud Infrastructure)와의 자율운영 AI 데이터베이스 통합 IAM은 ID 도메인이 있는 상용 테넌시 및 ID 도메인을 포함하지 않는 레거시 Oracle Cloud Infrastructure IAM에서 지원됩니다. ID 도메인이 포함된 Oracle Cloud Infrastructure IAM은 2021년 11월 8일 이후에 생성된 새로운 OCI 테넌시와 함께 도입되었습니다. 자율운영 AI 데이터베이스는 기본 및 비기본 ID 도메인의 사용자 및 그룹을 지원합니다.

자율운영 AI 데이터베이스를 사용한 ID 및 액세스 관리(IAM) 인증 정보

자율운영 AI 데이터베이스와의 Oracle Cloud Infrastructure IAM 통합은 데이터베이스 비밀번호 인증과 토큰 기반 인증을 모두 지원합니다. 자율운영 AI 데이터베이스에서 IAM 사용자를 사용하기 위한 아키텍처에 대한 자세한 내용은 Oracle 자율운영 AI 데이터베이스에 대한 IAM 사용자 인증 및 권한 부여를 참조하십시오.

IAM 데이터베이스 비밀번호 인증

참고: 지원되는 12c 이상 데이터베이스 클라이언트는 자율운영 AI 데이터베이스에 대한 IAM 데이터베이스 비밀번호 액세스에 사용할 수 있습니다.

Oracle Cloud Infrastructure IAM 데이터베이스 비밀번호를 사용하면 Oracle Database 사용자가 일반적으로 사용자 이름과 비밀번호로 로그인할 때 IAM 사용자가 자율운영 AI 데이터베이스 인스턴스에 로그인할 수 있습니다. 사용자가 IAM 사용자 이름과 IAM 데이터베이스 비밀번호를 입력합니다. IAM 데이터베이스 비밀번호는 Oracle Cloud Infrastructure 콘솔 비밀번호와 다른 비밀번호입니다. 비밀번호 검증기가 있는 IAM 사용자를 사용하면 지원되는 모든 데이터베이스 클라이언트에서 자율운영 AI 데이터베이스에 로그인할 수 있습니다.

IAM(ID 및 액세스 관리) SSO 토큰 기반 인증

데이터베이스 클라이언트는 다음과 같은 여러 가지 방법으로 IAM 데이터베이스 토큰을 얻을 수 있습니다.

사용자가 로그인할 사용자 이름/비밀번호를 입력하면 데이터베이스 드라이버는 암호 검증기 방법을 사용하여 클라이언트의 데이터베이스 토큰 설정에 관계없이 데이터베이스에 액세스합니다.

자율운영 AI 데이터베이스에서 ID 및 액세스 관리(IAM) 인증에 대한 필요 조건

자율운영 AI 데이터베이스에서 ID 및 액세스 관리(IAM) 인증을 사용하기 전에 다음을 확인해야 합니다.

자율운영 AI 데이터베이스에서 외부 ID 제공자 변경

외부 ID 제공자를 (IAM) 인증 및 권한 부여에서 다른 외부 인증 제공자로 변경하는 단계와 그 반대로 변경하는 단계를 설명합니다.

사용자에 대한 Oracle Cloud Infrastructure(IAM) 인증 및 권한 부여는 기본적으로 새로 프로비저닝된 자율운영 AI 데이터베이스 및 자율운영 컨테이너 데이터베이스에 대해 사용으로 설정됩니다. 자율운영 AI 데이터베이스에 대해 사용으로 설정할 수 있는 CMU-AD(Centrally Managed Users with Active Directory), Azure AD 및 Kerberos와 같은 기타 외부 인증 체계가 있습니다. 그러나 지정된 시간에 하나의 외부 인증 체계만 활성화될 수 있습니다.

데이터베이스 사용자가 다른 외부 인증 체계를 사용하여 자율운영 AI 데이터베이스에 접속할 수 있도록 하려면 다음을 수행합니다.

  1. DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION 프로시저를 사용하여 IAM 통합을 사용 안함으로 설정합니다.

    예:

     BEGIN
       DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
     END;
     /
    

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

  2. 다음 페이지에 설명된 단계에 따라 선택한 다른 외부 인증 체계를 구성합니다.

  3. IAM 사용자가 Oracle Cloud Infrastructure(IAM) 인증 및 권한 부여를 사용하여 자율운영 AI 데이터베이스에 접속할 수 있도록 다시 사용으로 설정합니다.

    ADMIN 유저로 아래 표시된 파라미터를 사용하여 DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION 프로시저를 실행합니다.

     BEGIN
       DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
    
         type => 'OCI_IAM'
         force => TRUE
         );
     END;
     /
    

    위의 예에서는 현재 사용으로 설정되어 있고 Oracle Cloud Infrastructure(IAM) 인증 및 권한 부여를 사용으로 설정하는 외부 인증 제공자를 사용 안함으로 설정합니다.

    이 예에서는 다음과 같습니다.

    • 현재 사용으로 설정된 외부 인증을 사용 안함으로 설정하려면 forceTRUE로 설정됩니다.

    • type는 Oracle Cloud Infrastructure(IAM) 인증 및 권한 부여를 사용으로 설정하고 사용하려면 'OCI_IAM'로 설정됩니다.

    주: 기본적으로 force 매개변수는 FALSE입니다. 다른 외부 인증 방법이 사용으로 설정되고 forceFALSE인 경우 DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION은 다음 오류를 보고합니다. ORA-20004: Another external authentication is already enabled.

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

  4. 아래와 같이 IDENTITY_PROVIDER_TYPE 시스템 매개변수의 값을 확인합니다.

     SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
     NAME                   VALUE
    
     ---------------------- -------
     identity_provider_type OCI_IAM
    

IAM(ID 및 액세스 관리) 그룹 및 IAM 유저에 대한 정책 생성

IAM 사용자가 Oracle Cloud Infrastructure 리소스, 특히 자율운영 AI 데이터베이스 인스턴스에 액세스할 수 있도록 IAM 그룹에 대한 정책 문을 작성하는 단계에 대해 설명합니다.

정책은 특정 리소스에 액세스할 수 있는 사용자 및 방법을 지정하는 명령문 그룹입니다. 전체 테넌시, 컴파트먼트의 데이터베이스 또는 개별 데이터베이스에 대한 액세스 권한을 부여할 수 있습니다. 즉, 특정 그룹에 특정 구획 내의 특정 리소스 유형에 대한 특정 유형의 액세스 권한을 부여하는 정책 문을 작성합니다.

주: 자율운영 AI 데이터베이스에 액세스하려면 IAM 토큰을 사용하려면 정책 정의가 필요합니다. 자율운영 AI 데이터베이스에 액세스하기 위해 IAM 데이터베이스 비밀번호를 사용하는 경우 정책이 필요하지 않습니다.

자율운영 AI 데이터베이스를 사용으로 설정하여 IAM 사용자가 IAM 토큰을 사용하여 데이터베이스에 접속할 수 있도록 허용하려면 다음을 수행합니다.

  1. 그룹을 생성하고 그룹에 사용자를 추가하여 Oracle Cloud Infrastructure Identity and Access Management 필요 조건을 수행합니다.

    예를 들어, sales_dbusers 그룹을 만듭니다.

    자세한 내용은 그룹 관리를 참조하십시오.

  2. Oracle Cloud Infrastructure 리소스에 대한 액세스를 사용으로 설정하는 정책 문을 작성합니다.

    1. Oracle Cloud Infrastructure 콘솔에서 ID 및 보안을 누릅니다.

    2. ID 및 보안에서 정책을 누릅니다.

    3. 쓰기 정책에 대해 정책 생성을 누릅니다.

    4. Create Policy 페이지에서 Name 및 Description을 입력합니다.

    5. [정책 생성] 페이지에서 수동 편집기 표시를 선택합니다.

       [Description of the illustration adb_iam_create_policy_manual.png](img_text/adb_iam_create_policy_manual.html)
      
    6. 정책 작성기를 사용하여 정책을 생성합니다.

      예를 들어, IAM 그룹 DBUsers의 사용자가 테넌시의 자율운영 AI 데이터베이스에 액세스할 수 있도록 허용하는 정책을 생성하려면 다음과 같이 하십시오.

       Allow group DBUsers to use autonomous-database-family in tenancy
      

      예를 들어, DBUsers 그룹의 멤버가 testing_compartment 컴파트먼트의 자율운영 AI 데이터베이스에만 액세스하도록 제한하는 정책을 생성합니다.

       allow group DBUsers to use autonomous-database-family in compartment testing_compartment
      

      예를 들어 컴파트먼트의 단일 데이터베이스에 대한 그룹 액세스를 제한하는 정책을 생성하려면 다음과 같이 하십시오.

       allow group DBUsers to use autonomous-database-family in compartment testing_compartment where target.database.id = 'ocid1.autonomousdatabase.oc1.iad.aaaabbbbcccc'
      

      데이터베이스에 액세스하기 위한 IAM 정책에 대한 자세한 내용은 Database Security GuideCreating an IAM Policy to Authorize Users Authenticating with Tokens를 참조하십시오.

    7. Create를 누릅니다.

      정책에 대한 자세한 내용은 정책 관리를 참조하십시오.

자율운영 AI 데이터베이스에서 IAM 사용자와 함께 사용할 정책을 생성하기 위한 참고 사항:

자율운영 AI 데이터베이스에 IAM 사용자 추가

자율운영 AI 데이터베이스에 대한 액세스를 허용하도록 IAM 사용자를 추가하려면 데이터베이스 전역 사용자를 IAM 그룹 또는 CREATE USER 또는 ALTER USER 문이 있는 사용자(IDENTIFIED GLOBALLY AS 절 사용)에 매핑합니다.

자율운영 AI 데이터베이스 인스턴스에 대한 IAM 사용자 권한 부여는 IAM 전역 사용자(스키마)를 IAM 사용자(배타적 매핑) 또는 IAM 그룹(공유 스키마 매핑)에 매핑하여 작동합니다.

자율운영 AI 데이터베이스 인스턴스에서 IAM 사용자에게 권한을 부여하려면 다음을 수행합니다.

  1. IAM을 사용하도록 활성화된 데이터베이스에 ADMIN 유저로 로그인합니다(ADMIN 유저에게는 이러한 단계에 필요한 필수 CREATE USERALTER USER 시스템 권한이 있음).

  2. CREATE USER 또는 ALTER USER 문을 사용하여 자율운영 AI 데이터베이스 사용자(스키마) 간에 매핑을 생성하고 IDENTIFIED GLOBALLY AS 절을 포함하여 IAM 그룹 이름을 지정합니다.

    다음 구문을 사용하여 전역 사용자를 IAM 그룹에 매핑합니다.

     CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_NAME';
    

    예를 들어, 이름이 db_sales_group인 IAM 그룹을 이름이 sales_group인 공유 데이터베이스 전역 사용자에 매핑하려면 다음과 같이 하십시오.

     CREATE USER sales_group IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=db_sales_group';
    

    이렇게 하면 공유 전역 사용자 매핑이 생성됩니다. 전역 사용자 sales_group를 사용하는 매핑은 IAM 그룹의 모든 사용자에게 적용됩니다. 따라서 db_sales_group의 모든 사용자가 sales_group 전역 사용자의 공유 매핑을 통해 IAM 인증서를 사용하여 데이터베이스에 로그인할 수 있습니다.

    다음 예에서는 비기본 도메인에 대해 이 작업을 수행하는 방법을 보여줍니다.

     CREATE USER shared_sales_schema IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=sales_domain/db_sales_group';
    
  3. 다른 IAM 그룹 또는 사용자에 대한 추가 전역 사용자 매핑을 만들려면 각 IAM 그룹 또는 사용자에 대해 다음 단계를 수행합니다.

주: IDENTIFIED GLOBALLY가 아닌 데이터베이스 사용자는 자율운영 AI 데이터베이스가 IAM 인증에 대해 사용으로 설정된 경우에도 이전과 같이 계속 로그인할 수 있습니다.

로컬 IAM 사용자를 Oracle Database 전역 사용자에 배타적으로 매핑하려면

  1. IAM을 사용하도록 활성화된 데이터베이스에 ADMIN 유저로 로그인합니다(ADMIN 유저에게는 이러한 단계에 필요한 필수 CREATE USERALTER USER 시스템 권한이 있음).

  2. CREATE USER 또는 ALTER USER 문으로 자율운영 AI 데이터베이스 사용자(스키마) 간에 매핑을 생성하고 IAM 로컬 IAM 사용자 이름을 지정하여 IDENTIFIED GLOBALLY AS 절을 포함합니다.

    예를 들어, peter_fitch라는 새 데이터베이스 전역 사용자를 생성하고 이 사용자를 peterfitch라는 기존 로컬 IAM 사용자에게 매핑하려면 다음과 같이 하십시오.

     CREATE USER peter_fitch IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=peterfitch'
    

    다음 예에서는 비기본 도메인 sales_domain을 지정하여 사용자를 만드는 방법을 보여줍니다.

     CREATE USER peter_fitch2 IDENTIFIED GLOBALLY AS
     'IAM_PRINCIPAL_NAME=sales_domain/peterfitch';
    

자율운영 AI 데이터베이스에서 IAM 롤 추가

선택적으로, 여러 IAM 사용자가 동일한 공유 전역 사용자에 매핑될 때 IAM 사용자에게 추가 데이터베이스 롤 및 권한을 제공할 전역 롤을 생성합니다.

사용자(스키마)에 대한 배타적 IAM 매핑 또는 자율운영 AI 데이터베이스에서 공유 사용자 매핑을 사용하는 경우 전역 롤 사용은 선택사항입니다. 예를 들어, 모든 권한과 롤을 공유 스키마에 부여할 수 있으며 공유 스키마에 매핑된 모든 IAM 유저에게는 공유 스키마에 할당된 권한과 롤이 부여됩니다.

Global 롤을 사용하여 동일한 공유 스키마를 사용하는 유저를 선택적으로 구분할 수 있습니다. 예를 들어, 사용자 집합은 모두 동일한 공유 스키마를 가질 수 있으며 공유 스키마는 CREATE SESSION 권한을 가질 수 있습니다. 그런 다음 Global 롤을 사용하여 동일한 공유 스키마를 사용하는 여러 유저 그룹에 할당된 차별화된 권한과 롤을 제공할 수 있습니다.

자율운영 AI 데이터베이스의 IAM 사용자에게 추가 롤을 부여하려면 자율운영 AI 데이터베이스의 전역 롤을 IAM 그룹에 매핑해야 합니다.

자율운영 AI 데이터베이스 전역 롤을 IAM 그룹에 매핑하려면 다음과 같이 하십시오.

  1. IAM을 사용하도록 활성화된 데이터베이스에 ADMIN 유저로 로그인합니다(ADMIN 유저에게는 이러한 단계에 필요한 필수 CREATE USERALTER USER 시스템 권한이 있음).

  2. CREATE ROLE 또는 ALTER ROLE 문을 사용하여 자율운영 AI 데이터베이스 롤에 대한 데이터베이스 권한 부여를 설정하고 IDENTIFIED GLOBALLY AS 절을 포함하여 IAM 그룹 이름을 지정합니다.

    다음 구문을 사용하여 전역 롤을 IAM 그룹에 매핑합니다.

     CREATE ROLE global_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=IAM_GROUP_of_WHICH_the_IAM_USER_IS_a_MEMBER';
    

    예를 들어, 이름이 ExporterGroup인 IAM 그룹을 이름이 export_role인 공유 데이터베이스 전역 롤에 매핑하려면 다음과 같이 하십시오.

     CREATE ROLE export_role IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=ExporterGroup';
    

    다음 예에서는 기본이 아닌 도메인 sales_domain을 지정하여 역할을 만드는 방법을 보여줍니다.

     CREATE ROLE export_role IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=sales_domain/ExporterGroup';
    

    sales_domain 도메인에서 ExporterGroup의 모든 멤버는 데이터베이스에 로그인할 때 데이터베이스 전역 롤 export_role로 권한이 부여됩니다.

  3. GRANT 문을 사용하여 필요한 권한 또는 기타 롤을 전역 롤에 부여합니다.

     GRANT CREATE SESSION TO export_role;
     GRANT DWROLE TO export_role;
    
  4. 기존 데이터베이스 롤을 IAM 그룹과 연관시키려면 ALTER ROLE 문을 사용하여 기존 데이터베이스 롤을 변경하여 롤을 IAM 그룹에 매핑합니다. 다음 구문을 사용하여 기존 데이터베이스 롤을 IAM 그룹에 매핑하도록 변경합니다.

     ALTER ROLE existing_database_role
        IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';
    

다른 IAM 그룹에 대해 다른 전역 롤 매핑을 추가하려면 각 IAM 그룹에 대해 다음 단계를 수행합니다.

IAM 사용자에 대한 IAM 데이터베이스 비밀번호 생성

IAM 사용자를 추가하고 IAM 사용자가 사용자 이름과 비밀번호를 제공하여 자율운영 AI 데이터베이스에 로그인할 수 있도록 허용하려면 IAM 데이터베이스 비밀번호를 생성해야 합니다.

자세한 내용은 Working with IAM Database Passwords을 참조하십시오.

ID 및 접근 관리(IAM) 인증을 사용하여 자율운영 AI 데이터베이스에 연결

데이터베이스 ADMIN 사용자가 전역 사용자 및 전역 롤을 IAM 사용자 및 IAM 그룹에 매핑한 후 사용자는 Oracle Cloud Infrastructure IAM 인증서를 사용하여 자율운영 AI 데이터베이스 인스턴스에 로그인하거나 Oracle Cloud Infrastructure IAM 데이터베이스 토큰을 통해 데이터베이스에 액세스합니다.

로컬 데이터베이스 계정 사용자 이름과 비밀번호(비전역 데이터베이스 사용자 계정)를 사용하여 자율운영 AI 데이터베이스에 계속 로그인할 수 있습니다.

데이터베이스 클라이언트를 사용하여 Oracle Cloud Infrastructure IAM 사용자로 자율운영 AI 데이터베이스 인스턴스에 액세스할 수 있습니다. Oracle Cloud Infrastructure IAM 사용자 이름 및 비밀번호 인증서와 비밀번호 검증기가 있는 클라이언트를 사용하려면 데이터베이스 클라이언트가 12c 이상이어야 합니다.

또는 Oracle Cloud Infrastructure IAM 데이터베이스 토큰을 사용하여 지원되는 클라이언트가 있는 자율운영 AI 데이터베이스 인스턴스에 액세스할 수 있습니다.

주: 자율운영 AI 데이터베이스 인스턴스가 제한 모드인 경우 ADMIN과 같은 RESTRICTED SESSION 권한이 있는 사용자만 데이터베이스에 접속할 수 있습니다.

IAM을 사용하여 전용 Exadata 인프라 인스턴스에서 자율운영 AI 데이터베이스에 접속 정보

IAM 사용자는 IAM 데이터베이스 비밀번호 검증기 또는 IAM 토큰을 사용하여 전용 Exadata 인프라 인스턴스의 자율운영 AI 데이터베이스에 연결할 수 있습니다.

IAM 데이터베이스 암호 검증기를 사용하는 것은 Oracle Database 암호 인증 프로세스와 유사합니다. 그러나 암호 검증자(암호의 암호화된 해시)가 전용 Exadata 인프라의 자율운영 AI 데이터베이스에 저장되는 대신, 검증자가 대신 OCI(Oracle Cloud Infrastructure) IAM 사용자 프로파일의 일부로 저장됩니다.

두번째 연결 방식인 데이터베이스에 대해 IAM 토큰을 사용하는 것이 더 현대적입니다. 토큰 기반 액세스 사용은 전용 Exadata 인프라의 자율운영 AI 데이터베이스와 같은 클라우드 리소스에 더 적합합니다. 토큰은 IAM 끝점이 적용할 수 있는 강도를 기반으로 합니다. 이것은 다중 요소 인증일 수 있으며 암호만 사용하는 것보다 더 강력합니다. 토큰을 사용하는 또 다른 이점은 암호 검증기(중요한 것으로 간주됨)가 메모리에 저장되거나 사용할 수 없다는 것입니다.

IAM 데이터베이스 암호 확인자를 사용하는 클라이언트 연결

IAM 유저에 필요한 권한 부여를 구성한 후에는 이 유저가 추가 구성 없이 SQL*Plus 또는 SQLcl과 같은 기존 클라이언트 응용 프로그램을 사용하여 로그인할 수 있습니다.

IAM 사용자는 현재 지원되는 데이터베이스 클라이언트를 사용하여 IAM 사용자 이름 및 IAM 데이터베이스 비밀번호(OCI(Oracle Cloud Infrastructure) 콘솔 비밀번호 아님)를 입력합니다. 유일한 제약 조건은 Oracle Database 12c 암호를 사용하기 위해 데이터베이스 클라이언트 버전이 Oracle Database 릴리스 12.1.0.2 이상이라는 것입니다. 데이터베이스 클라이언트는 12C 비밀번호 검증기를 사용할 수 있어야 합니다. IAM에서는 11G 검증자 암호화를 사용할 수 없습니다. IAM 사용자가 전용 Exadata 인프라 인스턴스의 자율운영 AI 데이터베이스에 접속하는 데 특별한 클라이언트 또는 툴 구성이 필요하지 않습니다.

토큰을 사용하는 클라이언트 연결

전용 Exadata 인프라의 자율운영 AI 데이터베이스에 대한 IAM 토큰 액세스의 경우 클라이언트 애플리케이션 또는 툴이 IAM 사용자에 대해 IAM에서 데이터베이스 토큰을 요청합니다.

클라이언트 응용 프로그램은 데이터베이스 클라이언트 API를 통해 데이터베이스 클라이언트에 직접 데이터베이스 토큰을 전달합니다.

IAM 토큰을 요청하기 위해 애플리케이션 또는 툴이 업데이트되지 않은 경우 IAM 사용자는 OCI(Oracle Cloud Infrastructure) 명령행 인터페이스(CLI)를 사용하여 데이터베이스 토큰을 요청하고 저장할 수 있습니다. 다음 인증서를 사용하여 데이터베이스 액세스 토큰(db-token)을 요청할 수 있습니다.

IAM 유저가 슬래시 / 로그인을 사용하여 클라이언트에 로그인하고 OCI_IAM 파라미터가 구성된 경우(sqlnet.ora, tnsnames.ora 또는 연결 문자열의 일부) 데이터베이스 클라이언트는 파일에서 데이터베이스 토큰을 검색합니다. IAM 사용자가 사용자 이름 및 암호를 제출하면 연결은 IAM 데이터베이스 암호 검증자를 사용하는 클라이언트 연결에 대해 설명된 IAM 데이터베이스 검증자 액세스를 사용합니다. 이 설명서의 지침은 데이터베이스 토큰에 대한 도우미로 OCI CLI를 사용하는 방법을 보여줍니다. 응용 프로그램 또는 도구가 IAM에서 작동하도록 업데이트된 경우 응용 프로그램 또는 도구에 대한 지침을 따릅니다. 일반적인 사용 사례로는 온프레미스 SQL*Plus, 온프레미스 SQLcl, Cloud Shell의 SQL*Plus 또는 SEP 전자 지갑을 사용하는 애플리케이션이 있습니다.

다음 항목에서는 다음에 대해 설명합니다.

IAM 데이터베이스 암호를 사용하는 SQL*Plus에 대해 클라이언트 연결 구성

IAM 데이터베이스 암호를 사용하도록 SQL*Plus를 구성할 수 있습니다.

IAM 토큰을 사용하는 SQL*Plus에 대해 클라이언트 연결 구성

IAM 토큰을 사용하는 SQL*Plus에 대해 클라이언트 연결을 구성할 수 있습니다.

  1. IAM 사용자 계정이 있는지 확인합니다.

  2. IAM 관리자 및 Oracle Database 관리자에게 문의하여 컴파트먼트 또는 테넌시의 데이터베이스에 액세스할 수 있고 사용자가 데이터베이스의 전역 스키마에 매핑되는 정책이 있는지 확인하십시오.

  3. 애플리케이션 또는 툴이 직접 IAM 통합을 지원하지 않는 경우 OCI CLI를 다운로드, 설치 및 구성합니다. OCI 명령행 인터페이스 Quickstart를 참조하십시오. API 키를 OCI CLI 구성의 일부로 설정하고 기본값을 선택합니다.

    1. IAM 사용자에 대한 API 키 액세스를 설정합니다.

    2. db-token를 검색합니다. 예:

      • OCI(Oracle Cloud Infrastructure) 명령행 인터페이스를 사용하여 API-keydb-token 검색:

        oci iam db-token get
        
      • 보안(또는 세션) 토큰으로 db-token 검색:

        oci iam db-token get --auth security_token
        

        보안 토큰이 만료된 경우 사용자가 OCI에 다시 로그인할 수 있도록 창이 나타납니다. 그러면 사용자에 대한 보안 토큰이 생성됩니다. OCI CLI는 이 새로고침된 토큰을 사용하여 db-token을 가져옵니다.

      • 위임 토큰이 있는 db-token 검색: 클라우드 셸에 로그인하면 위임 토큰이 자동으로 생성되어 /etc 디렉토리에 배치됩니다. 이 토큰을 가져오려면 클라우드 셸에서 다음 명령을 실행합니다.

        oci iam db-token get
        
      • OCI 명령행 인터페이스를 사용하여 인스턴스 토큰 검색:

        oci iam db-token get --auth instance_principal
        
    3. 데이터베이스 클라이언트는 IAM 사용자 이름 및 IAM 데이터베이스 암호를 사용하여 데이터베이스 토큰을 검색하도록 구성할 수도 있습니다.

      자세한 내용은 IAM 사용자 이름 및 데이터베이스 비밀번호로 요청된 토큰을 사용하는 클라이언트 접속을 참조하십시오.

    자세한 내용은 필수 키 및 OCID를 참조하십시오.

  4. Oracle Database 클라이언트 릴리스 19c 및 21c에 대한 최신 릴리스 업데이트를 사용하고 있는지 확인합니다.

    이 구성은 Oracle Database 클라이언트 릴리스 19c 또는 21c에서만 작동합니다.

  5. 기존 프로세스에 따라 자율운영 AI 데이터베이스에서 전자 지갑을 다운로드한 다음 지침에 따라 SQL*Plus에서 사용하도록 구성합니다.

    1. sqlnet.ora에서 SSL_SERVER_DN_MATCH=ON를 찾아 DN 일치가 사용으로 설정되었는지 확인합니다.

    2. TOKEN_AUTH=OCI_TOKENsqlnet.ora 파일에 추가하여 IAM 토큰을 사용하도록 데이터베이스 클라이언트를 구성합니다. 데이터베이스 토큰 파일에 대해 기본 위치를 사용하므로 토큰 위치를 포함할 필요가 없습니다.

    tnsnames.ora 접속 문자열의 TOKEN_AUTHTOKEN_LOCATION 값은 해당 접속에 대한 sqlnet.ora 설정보다 우선합니다. 예를 들어, 연결 문자열의 경우 토큰이 기본 위치(Linux의 경우 ~/.oci/db-token)에 있다고 가정합니다.

     (description=
       (retry_count=20)(retry_delay=3)
       (address=(protocol=tcps)(port=1522)
       (host=example.us-phoenix-1.oraclecloud.com))
       (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
       (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
          OU=Oracle BMCS US, O=Example Corporation,
          L=Redwood City, ST=California, C=US")
       (TOKEN_AUTH=OCI_TOKEN)))
    

연결 문자열이 TOKEN_AUTH 매개변수로 업데이트된 후 IAM 사용자는 다음 명령을 실행하여 SQL\*Plus를 시작하여 자율운영 AI 데이터베이스 인스턴스에 로그인할 수 있습니다. 연결 기술자 자체를 포함하거나 tnsnames.ora 파일에서 기술자 이름을 사용할 수 있습니다.

connect /@exampledb_high

또는

connect /@(description=
  (retry_count=20)(retry_delay=3)
  (address=(protocol=tcps)(port=1522)
  (host=example.us-phoenix-1.oraclecloud.com))
  (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
  (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
     OU=Oracle BMCS US, O=Example Corporation,
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

TOKEN_AUTHsqlnet.ora 파일 또는 접속 문자열을 통해 이미 설정되었으므로 데이터베이스 클라이언트가 이미 db-token을 가져오도록 구성되었습니다. 데이터베이스 클라이언트는 db-token을 가져와서 프라이빗 키를 사용하여 서명한 다음 자율운영 AI 데이터베이스로 토큰을 전송합니다. 슬래시 / 대신 IAM 사용자 이름과 IAM 데이터베이스 비밀번호가 지정된 경우 데이터베이스 클라이언트는 db-token를 사용하는 대신 비밀번호를 사용하여 접속합니다.

인스턴스 주체를 사용하여 IAM(ID 및 액세스 관리) 인증을 통해 자율운영 AI 데이터베이스에 액세스

ADMIN 사용자가 자율운영 AI 데이터베이스에서 Oracle Cloud Infrastructure IAM을 사용으로 설정한 후 애플리케이션은 인스턴스 주체를 사용하여 Oracle Cloud Infrastructure IAM 데이터베이스 토큰을 통해 데이터베이스에 액세스할 수 있습니다.

자세한 내용은 인스턴스 주체를 사용하여 Oracle Cloud Infrastructure API에 액세스를 참조하십시오.

프록시 인증 구성

프록시 인증을 사용하면 IAM 사용자가 애플리케이션 유지 관리와 같은 작업에 대해 데이터베이스 스키마를 프록시할 수 있습니다.

일반적으로 Proxy 인증은 실제 유저를 인증한 다음 응용 프로그램을 관리하기 위해 스키마 권한 및 롤이 있는 데이터베이스 스키마를 사용하도록 권한을 부여하는 데 사용됩니다. 응용 프로그램 스키마 암호 공유와 같은 대안은 안전하지 않은 것으로 간주되며 어떤 실제 사용자가 작업을 수행했는지 감사할 수 없습니다.

사용 사례는 애플리케이션 데이터베이스 관리자인 명명된 IAM 사용자가 자신의 인증서를 사용하여 인증한 다음 데이터베이스 스키마 사용자(예: hrapp)에 프록시하여 인증할 수 있는 환경에 있을 수 있습니다. 이 인증을 통해 IAM 관리자는 응용 프로그램 유지 관리를 수행하기 위해 hrapp 권한 및 롤을 사용자 hrapp로 사용할 수 있지만 인증을 위해 해당 IAM 인증서를 계속 사용할 수 있습니다. 응용 프로그램 데이터베이스 관리자는 데이터베이스에 사인인한 다음 응용 프로그램 스키마에 proxy를 사용하여 이 스키마를 관리할 수 있습니다.

암호 인증 및 토큰 인증 방식 모두에 대해 프록시 인증을 구성할 수 있습니다.

IAM 사용자에 대한 프록시 인증 구성

IAM 사용자에 대한 프록시 인증을 구성하려면 IAM 사용자에게 전역 스키마에 대한 매핑(제외 또는 공유 매핑)이 이미 있어야 합니다. 프록시할 IAM 사용자에 대한 별도의 데이터베이스 스키마도 사용할 수 있어야 합니다.

이 유형의 유저가 있는지 확인한 후에 IAM 유저가 해당 유저를 proxy할 수 있도록 데이터베이스 유저를 변경합니다.

  1. ALTER USER 시스템 권한을 가진 사용자로 자율운영 AI 데이터베이스 인스턴스에 로그인합니다.

  2. IAM 사용자가 로컬 데이터베이스 사용자 계정에 프록시할 수 있는 권한을 부여합니다. 명령에서 IAM 사용자를 참조할 수 없으므로 데이터베이스 전역 사용자( IAM 사용자) 및 대상 데이터베이스 사용자에 매핑됩니다. 다음 예에서 hrapp은 프록시할 데이터베이스 스키마이고 peterfitch_schema은 사용자 peterfitch에 배타적으로 매핑된 데이터베이스 전역 사용자입니다.

     ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
    

이 단계에서 IAM 유저는 proxy를 사용하여 데이터베이스 instance에 로그인할 수 있습니다. 예:

암호 검증기를 사용하여 연결하려면 다음과 같이 하십시오.

CONNECT peterfitch[hrapp]@connect_string
Enter password: password

토큰을 사용하여 접속하려면 다음과 같이 하십시오.

CONNECT [hrapp]/@connect_string

IAM 사용자 프록시 인증 검증

비밀번호 및 토큰 인증 방법 모두에 대해 IAM 사용자 프록시 구성을 검증할 수 있습니다. 1. CREATE USERALTER USER 시스템 권한을 가진 사용자로 자율운영 AI 데이터베이스 인스턴스에 로그인합니다.

  1. IAM 유저에 연결하여 SHOW USERSELECT SYS_CONTEXT 명령을 실행합니다. 예를 들어, 데이터베이스 사용자 hrapp에 프록시할 때 IAM 사용자 peterfitch의 프록시 인증을 확인하려고 한다고 가정합니다. 여기에 표시된 여러 유형의 인증 방법을 사용하여 데이터베이스에 연결해야 하지만 실행하는 명령의 출력은 모든 유형에 대해 동일합니다.

    • 암호 인증의 경우:
CONNECT peterfitch[hrapp]/password!@connect_string
SHOW USER;

--The output should be USER is "HRAPP"
SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;

--The output should be "PASSWORD_GLOBAL"
SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;

--The output should be "PETERFITCH_SCHEMA"
SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;

--The output should be "HRAPP"

IAM 인증 사용자와 데이터베이스 링크 사용

데이터베이스 링크를 사용하여 자율운영 AI 데이터베이스 인스턴스 간에 Oracle Cloud Infrastructure IAM 사용자로 연결할 수 있습니다.

연결된 사용자 또는 고정 사용자 데이터베이스 링크를 사용하여 자율운영 AI 데이터베이스에 Oracle Cloud Infrastructure IAM 사용자로 연결할 수 있습니다.

참고: 현재 사용자 데이터베이스 링크는 자율운영 AI 데이터베이스에 Oracle Cloud Infrastructure IAM 사용자로 접속하는 데 지원되지 않습니다.

자율운영 AI 데이터베이스에서 ID 및 액세스 관리(IAM) 인증 사용 안함

자율운영 AI 데이터베이스에 대한 IAM 외부 인증 사용자 액세스를 사용 안함으로 설정하는 단계에 대해 설명합니다.

아래와 같이 ALTER SYSTEM 명령을 사용하여 자율운영 AI 데이터베이스 인스턴스에서 IAM 사용자 액세스를 사용 안함으로 설정할 수 있습니다.

ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;

리소스, 즉 자율운영 컨테이너 데이터베이스 또는 자율운영 AI 데이터베이스에서도 IAM에 대한 액세스를 업데이트하려면 해당 리소스에서 IAM에 대한 액세스를 허용하기 위해 설정한 정책 및 IAM 그룹을 제거하거나 수정해야 할 수 있습니다.

IAM(Identity and Access Management) 인증을 통한 자율운영 AI 데이터베이스 도구 사용에 대한 참고 사항

IAM 인증이 사용으로 설정된 자율운영 AI 데이터베이스 툴 사용에 대한 노트를 제공합니다.