주:
- 이 자습서는 Oracle에서 제공하는 무료 실습 환경에서 사용할 수 있습니다.
- Oracle Cloud Infrastructure 인증서, 테넌시 및 구획에 예제 값을 사용합니다. 실습을 완료할 때 이러한 값을 클라우드 환경과 관련된 값으로 대체하십시오.
Oracle Linux에 FreeIPA 서버 설치
소개
FreeIPA는 Linux 네트워크 환경을 위한 오픈 소스 ID 및 인증 관리 시스템입니다. 서버는 중앙 데이터 저장소로 389 Directory Server를 포함하며 전체 다중 마스터 LDAPv3 기능을 제공합니다.
이 자습서의 범위 외에도 FreeIPA는 ISC 바인드 서버를 통해 단일 사인온 인증, Dogtag 인증 기관 및 선택적 도메인 이름 관리를 위한 MIT Kerberos도 제공합니다.
이 자습서에서는 FreeIPA를 설치하고 포함된 LDAP 디렉토리를 구성하는 방법을 보여줍니다.
목표
이 자습서에서는 다음 방법을 학습합니다.
- FreeIPA 서버 설치
- 익명 바인드 사용 안함
- 사용자 및 그룹 추가
필요 조건
-
최소 단일 Oracle Linux 시스템
-
각 시스템에는 다음과 같이 Oracle Linux가 설치 및 구성되어 있어야 합니다.
- sudo 액세스 권한이 있는 비루트 사용자 계정
- 인터넷에 대한 액세스
- 서버의 IP 주소를 가리키는 FQDN(정규화된 도메인 이름)
FreeIPA 요구 사항에 대한 자세한 내용은 업스트림 빠른 시작 가이드를 참조하십시오.
Oracle Linux 배치
주: 고유 테넌시에서 실행 중인 경우 linux-virt-labs
GitHub 프로젝트 README.md를 읽고 실습 환경을 배치하기 전에 필요 조건을 완료하십시오.
-
루나 데스크탑에서 터미널을 엽니다.
-
linux-virt-labs
GitHub 프로젝트를 복제합니다.git clone https://github.com/oracle-devrel/linux-virt-labs.git
-
작업 디렉토리로 변경합니다.
cd linux-virt-labs/ol
-
필요한 모음을 설치합니다.
ansible-galaxy collection install -r requirements.yml
-
Oracle Linux 인스턴스 구성을 업데이트합니다.
cat << EOF | tee instances.yml > /dev/null compute_instances: 1: instance_name: "freeipa" type: "server" EOF
-
lab 환경을 배치합니다.
ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6" -e "@instances.yml"
무료 실습 환경에는 localhost에서 실행되는 재생에 대해
ansible_python_interpreter
를 설정하는 추가 변수local_python_interpreter
이 필요합니다. 이 변수는 환경이 python3.6 모듈 아래에 있는 Oracle Cloud Infrastructure SDK for Python용 RPM 패키지를 설치하기 때문에 필요합니다.기본 배치 구성은 AMD CPU 및 Oracle Linux 8을 사용합니다. Intel CPU 또는 Oracle Linux 9를 사용하려면 배치 명령에
-e instance_shape="VM.Standard3.Flex"
또는-e os_version="9"
를 추가합니다.중요: 플레이북이 성공적으로 실행될 때까지 기다렸다가 일시 중지 작업에 도달합니다. 플레이북의 이 단계에서 Oracle Linux 설치가 완료되고 인스턴스가 준비됩니다. 이전 플레이에서 배치하는 노드의 공용(public) 및 전용(private) IP 주소와 실습을 실행하는 동안 필요한 기타 배치 정보를 출력합니다.
서버 DNS 구성 확인
FreeIPA 서버에는 작동 중인 DNS 설정이 필요합니다. ipa
명령줄 도구를 사용하여 등록된 클라이언트는 /etc/ipa/default.conf
파일에 정의된 xmlrpc_url
및 domain
매개변수를 사용하여 서버를 조회합니다.
-
터미널을 열고 SSH를 통해 freeipa 인스턴스에 연결합니다.
ssh oracle@<ip_address_of_instance>
-
서버의 호스트 이름을 확인합니다.
sudo hostname
출력은
localhost
또는localhost6
를 반환하지 않아야 합니다.
FQDN(정규화된 도메인명)을 확인합니다.
FreeIPA는 설치 중 검증하는 FQDN에 대해 64자 제한이 있습니다. FQDN이 64자를 초과할 경우 sudo hostnamectl set-hostname NAME
를 사용합니다. 여기서 NAME
은 FQDN입니다.
-
FQDN 및 길이를 확인합니다.
hostname -f
-
FQDN 길이를 가져옵니다.
echo $(hostname -f) | wc -m
Name Resolution을 확인합니다.
-
서버의 IP 주소를 가져옵니다.
ip -4 -o addr show ens3 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
여기서
ens3
은 시스템의 네트워크 인터페이스 이름입니다. -
전달 DNS 구성을 확인합니다.
host $(hostname -f)
포워드 DNS 구성을 확인하는 또 다른 방법은
dig +short $(hostname -f) A
를 사용하는 것입니다.host
및dig
는 모두 DNS 이름 서버를 질의하는 여러 유틸리티를 제공하는bind-utils
패키지의 일부입니다. -
역방향 DNS 구성(PTR 레코드)을 확인합니다.
host $(hostname -i)
대신
dig +short -x $(hostname -i)
를 사용할 수 있습니다.
필요한 방화벽 포트 열기
FreeIPA를 사용하려면 여러 포트를 열고 해당 서비스와 통신할 수 있어야 합니다.
서비스 | 포트 | 프로토콜 |
---|---|---|
HTTP/HTTPS | 80,443 | TCP |
LDAP/LDAP | 389,636 | TCP |
Kerberos | 88,464 | TCP 및 UDP |
DNS | 53 | TCP 및 UDP |
NTP | 123 | UDP |
Oracle Linux는 이러한 필수 포트를 열 수 있는 freeipa-4
서비스를 제공합니다. 자세한 내용은 /usr/lib/firewalld/services/freeipa-4.xml
을 참조하십시오. freeipa-4
서비스는 사용되지 않는 freeipa-ldap
및 freeipa-ldaps
서비스를 대체합니다.
-
firewalld
서비스를 추가합니다.sudo firewall-cmd --permanent --add-service=freeipa-4
-
변경 사항이 적용되도록 firewalld 서비스를 다시 로드합니다.
sudo firewall-cmd --reload
필요한 패키지 설치
-
FreeIPA 모듈 스트림 및 프로파일을 사용으로 설정합니다.
Oracle Linux 8:
sudo dnf module enable -y idm:DL1
Oracle Linux 9 및 Oracle Linux 10:
FreeIPA 패키지는 AppStream 저장소의 일부이므로 Oracle Linux 9에서는 수행할 작업이 없습니다.
-
통합 DNS 서비스 없이 FreeIPA 서버에 대한 패키지를 설치합니다.
sudo dnf install -y ipa-server
주: 이 자습서의 일부로 통합 DNS 서비스를 사용하지 않습니다. 필요한 경우
ipa-server-dns
패키지를 설치 목록에 추가합니다.
FreeIPA 서버 설치 및 구성
-
설치 유틸리티를 실행합니다.
sudo ipa-server-install
스크립트는 설치 로그 파일 위치와 FreeIPA 서버에 포함된 내용에 대한 요약을 제공하는 것으로 시작합니다.
출력 예:
[oracle@freeipa ~]$ sudo ipa-server-install The log file for this installation can be found in /var/log/ipaserver-install.log ============================================================================== This program will set up the IPA Server. Version 4.9.8 This includes: * Configure a stand-alone CA (dogtag) for certificate management * Configure the NTP client (chronyd) * Create and configure an instance of Directory Server * Create and configure a Kerberos Key Distribution Center (KDC) * Configure Apache (httpd) * Configure SID generation * Configure the KDC to enable PKINIT ...
그런 다음 스크립트는 여러 프롬프트를 사용하여 서버의 구성을 설정합니다. 터미널에는 대괄호 안의 프롬프트에 대한 기본 응답이 표시되고
Enter
를 누르면 기본 응답이 수락됩니다. -
기본 응답인
no
를 수락하여 통합 DNS 서비스를 구성합니다.Do you want to configure integrated DNS (BIND)? [no]:
-
기본 호스트, 도메인 및 영역 이름을 적용합니다.
이 값은 이 연습의 시작 부분에서 확인된 값입니다. 권장되는 구성은 영역 이름이 기본 DNS 도메인 이름과 모든 대문자와 일치한다는 것입니다.
Enter the fully qualified domain name of the computer on which you're setting up server software. Using the form <hostname>.<domainname> Example: master.example.com. Server host name [freeipa.lv.vcn.oraclevcn.com]: The domain name has been determined based on the host name. Please confirm the domain name [lv.vcn.oraclevcn.com]: The kerberos protocol requires a Realm name to be defined. This is typically the domain name converted to uppercase. Please provide a realm name [LV.VCN.ORACLEVCN.COM]:
-
Directory Server 수퍼유저 및 FreeIPA
admin
사용자에 대한 비밀번호를 입력하고 확인합니다.Directory Server 수퍼유저는 디렉토리 내의
cn=Directory Manager
에 매핑됩니다.Certain directory server operations require an administrative user. This user is referred to as the Directory Manager and has full access to the Directory for system management tasks and will be added to the instance of directory server created for IPA. The password must be at least 8 characters long. Directory Manager password: Password (confirm): The IPA server requires an administrative user, named 'admin'. This user is a regular system account used for IPA server administration. IPA admin password: Password (confirm):
-
NETBIOS 도메인 이름 및
no
설정에 기본값을 적용하여 chrony를 구성합니다.NetBIOS domain name [LV]: Do you want to configure chrony with NTP server or pool address? [no]:
-
이 스크립트는 서버 구성에 대한 요약을 제공합니다.
-
서버 구성을 그대로 사용하려면
yes
를 입력합니다.Continue to configure the system with these values? [no]: yes
-
스크립트는 계속해서 서버 구성을 진행합니다.
이 작업은 완료하는 데 몇 분 정도 걸릴 수 있습니다.
... Client configuration complete. The ipa-client-install command was successful Please add records in this file to your DNS system: /tmp/ipa.system.records.mv9i0ec2.db ============================================================================== Setup complete Next steps: 1. You must make sure these network ports are open: TCP Ports: * 80, 443: HTTP/HTTPS * 389, 636: LDAP/LDAPS * 88, 464: kerberos UDP Ports: * 88, 464: kerberos * 123: ntp 2. You can now obtain a kerberos ticket using the command: 'kinit admin' This ticket will allow you to use the IPA tools (e.g., ipa user-add) and the web user interface. Be sure to back up the CA certificates stored in /root/cacert.p12 These files are required to create replicas. The password for these files is the Directory Manager password The ipa-server-install command was successful
완료 시 스크립트는 다음을 제공합니다.
- 요약입니다.
- DNS 시스템에 추가할 레코드 목록입니다.
- 생성된 CA 인증서를 백업하는 것이 좋습니다.
필요한 네트워크 포트가
freeipa-4
firewalld
서비스를 사용하여 이미 열려 있습니다.
FreeIPA 서버 테스트
FreeIPA 설치에는 명령줄 클라이언트와 서버와의 상호 작용을 위한 WebUI가 포함됩니다. WebUI 사용은 이 자습서의 범위를 벗어납니다.
CLI(명령행 인터페이스) 액세스
-
Kerberos 영역에 대해
admin
사용자를 인증합니다.kinit admin
메시지가 표시되면 설치 및 구성 단계에서 만든
admin
사용자에 대한 암호를 입력합니다. 그런 다음kinit
명령은 Kerberos 티켓을 생성합니다. -
티켓 정보 나열
klist
출력 예:
[oracle@freeipa ~]$ sudo klist Ticket cache: KCM:0 Default principal: admin@LV.VCN.ORACLEVCN.COM Valid starting Expires Service principal 09/28/2022 14:05:46 09/29/2022 13:05:53 krbtgt/LV.VCN.ORACLEVCN.COM@LV.VCN.ORACLEVCN.COM
-
FreeIPA 서버의 모든 기존 사용자 목록을 가져옵니다.
ipa user-find
결과는 현재 존재하는 유일한 사용자인
admin
사용자를 반환합니다.출력 예:
[oracle@freeipa ~]$ sudo ipa user-find -------------- 1 user matched -------------- User login: admin Last name: Administrator Home directory: /home/admin Login shell: /bin/bash Principal alias: admin@LV.VCN.ORACLEVCN.COM, root@LV.VCN.ORACLEVCN.COM UID: 872200000 GID: 872200000 Account disabled: False ---------------------------- Number of entries returned 1 ----------------------------
보안 설정 및 강화
다음은 FreeIPA 서버를 안전하게 사용하는 몇 가지 방법입니다.
익명 바인드 사용 안함
FreeIPA LDAP 서버는 익명 바인드를 기본값으로 사용하므로 특정 구성 설정 및 디렉토리 값이 표시됩니다.
nsslapd-allow-anonymous-access
속성은 이 동작을 제어합니다. 허용되는 값은 다음과 같습니다.
on
: 모든 익명 바인드를 허용합니다(기본값).rootdse
: 루트 DSE 정보에 대해서만 익명 바인드를 허용합니다.off
: 익명 바인드를 허용하지 않습니다.
익명 바인드를 허용하지 않을 경우 off
를 사용하면 외부 클라이언트가 서버 구성을 확인하지 못하도록 차단하므로 off
대신 rootdse
를 사용할 것을 권장합니다. LDAP 및 웹 클라이언트와 같은 비도메인 클라이언트는 루트 DSE 파일을 읽고 익명으로 연결하여 연결 세부정보를 가져옵니다.
-
익명 바인드가 사용으로 설정되었는지 확인합니다.
ldapsearch -x -h $(hostname -f) -b dc=lv,dc=vcn,dc=oraclevcn,dc=com
-x
는 단순 또는 익명 인증을 설정합니다.-h
는 LDAP 서버 호스트를 설정합니다.-b
는 검색에 대한 기본 DN을 설정합니다.
FreeIPA 서버에 대한 기본 DN을 포함한 키 설정은
/etc/ipa/default.conf
파일에 저장됩니다.출력 예:
... # Default SMB Group, groups, accounts, lv.vcn.oraclevcn.com dn: cn=Default SMB Group,cn=groups,cn=accounts,dc=lv,dc=vcn,dc=oraclevc n,dc=com cn: Default SMB Group description: Fallback group for primary group RID, do not add users to this gr oup objectClass: top objectClass: ipaobject objectClass: posixgroup objectClass: ipantgroupattrs ipaUniqueID: 0c9cf178-4324-11ed-bf0b-02001704fe22 gidNumber: 921600001 ipaNTSecurityIdentifier: S-1-5-21-2697967063-3375457457-2974965896-1001 # search result search: 2 result: 0 Success # numResponses: 110 # numEntries: 109
검색 결과는 LDAP 디렉토리에 대한 전체 트리를 반환합니다.
-
구성을 수정하고 익명 바인드를 사용 안함으로 설정합니다.
ldapmodify
명령은 변경 사항이 있는 LDIF 파일을 수락하거나 표준 입력에서 작업을 읽습니다.-
LDIF 파일을 만듭니다.
cat << 'EOF' | tee ~/disable_anon_bind.ldif > /dev/null dn: cn=config changetype: modify replace: nsslapd-allow-anonymous-access nsslapd-allow-anonymous-access: rootdse EOF
여러 속성을 한 행에서 대시
-
문자로 구분하여 변경할 수 있습니다. 각 추가 변경은 속성 변경 유형으로 시작하고 필수 속성을 제공합니다. -
LDIF 변경사항을 적용합니다.
ldapmodify -x -D "cn=Directory Manager" -W -H ldap:// -ZZ -f ~/disable_anon_bind.ldif
-x
는 단순 또는 익명 인증을 설정합니다.-D
는 바인드 DN을 설정합니다.-W
는 LDAPadmin
암호를 묻는 메시지를 표시합니다.-H
는 LDAP 서버 호스트가 아닌 LDAP URI(Uniform Resource Identifier)를 사용하여 연결합니다.-ZZ
는 TLS 요청을 시작하고 성공한 응답을 강제 적용합니다.
주: 자체 서명된 인증서 사용으로 인해
-ZZ
가 필요합니다.출력 예:
[oracle@freeipa ~]$ ldapmodify -x -D "cn=Directory Manager" -W -H ldap:// -ZZ -f ~/disable_anon_bind.ldif Enter LDAP Password: modifying entry "cn=config"
-
FreeIPA 서버를 다시 시작합니다.
sudo systemctl restart ipa.service
-
-
디렉토리를 익명으로 query하여 수정 사항을 확인합니다.
ldapsearch -x -h $(hostname -f) -b dc=lv,dc=vcn,dc=oraclevcn,dc=com
Anonymous access is not allowed
응답을 확인합니다.출력 예:
[oracle@freeipa ~]$ ldapsearch -x -h freeipa.lv.vcn.oraclevcn.com -b dc=lv,dc=vcn,dc=oraclevcn,dc=com # extended LDIF # # LDAPv3 # base <dc=lv,dc=vcn,dc=oraclevcn,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 48 Inappropriate authentication text: Anonymous access is not allowed. # numResponses: 1
-
인증을 사용하여 디렉토리 질의가 작동하는지 확인합니다.
ldapsearch -D uid=admin,cn=users,cn=accounts,dc=lv,dc=vcn,dc=oraclevcn,dc=com -W -H ldap://
출력 예:
... # freeipa.lv.vcn.oraclevcn.com + 389, subordinate-ids, dna, ipa, etc, lv.vcn.oraclevcn.com dn: dnaHostname=freeipa.lv.vcn.oraclevcn.com+dnaPortNum=389,cn=subord inate-ids,cn=dna,cn=ipa,cn=etc,dc=lv,dc=vcn,dc=oraclevcn,dc=com objectClass: dnaSharedConfig objectClass: top dnaHostname: freeipa.lv.vcn.oraclevcn.com dnaPortNum: 389 dnaSecurePortNum: 636 dnaRemainingValues: 32766 # search result search: 2 result: 0 Success # numResponses: 475 # numEntries: 474
TLS가 사용으로 설정되었는지 확인
Oracle Linux 8부터 FreeIPA는 시스템 차원의 암호화 정책을 사용합니다. 자세한 내용은 crypto-policies(7)
매뉴얼 페이지를 참조하십시오.
-
현재 시스템 차원의 암호화 정책을 나열합니다.
cat /etc/crypto-policies/config
-
암호화 정책 세부정보를 나열합니다.
cat /usr/share/crypto-policies/$(cat /etc/crypto-policies/config)/nss.txt
출력 예:
[oracle@freeipa ~]$ cat /usr/share/crypto-policies/$(cat /etc/crypto-policies/config)/nss.txt library= name=Policy NSS=flags=policyOnly,moduleDB config="disallow=ALL allow=HMAC-SHA256:HMAC-SHA1:HMAC-SHA384:HMAC-SHA512:CURVE25519:SECP256R1:SECP384R1:SECP521R1:aes256-gcm:chacha20-poly1305:aes256-cbc:aes128-gcm:aes128-cb > c:SHA256:SHA384:SHA512:SHA224:ECDHE-RSA:ECDHE-ECDSA:RSA:DHE-RSA:ECDSA:RSA-PSS:RSA-PKCS:tls-version-min=tls1.2:dtls-version-min=dtls1.2:DH-MIN=2048:DSA-MIN=2048:RSA-MIN=2048"
DEFAULT
정책은 최소TLS 1.2
를 사용합니다.
FreeIPA 서버 상태 확인
FreeIPA 서버에는 구성된 서비스의 상태를 볼 수 있는 ipactl
유틸리티가 포함되어 있습니다. 동일한 유틸리티가 전체 FreeIPA 서버를 시작, 중지 및 다시 시작할 수도 있습니다. start
, stop
또는 restart
개별 구성 요소가 필요한 경우 systemctl COMMAND name.service
를 사용합니다.
-
모든 서비스의 상태를 표시합니다.
sudo ipactl status
출력 예:
[oracle@freeipa ~]$ sudo ipactl status Directory Service: RUNNING krb5kdc Service: RUNNING kadmin Service: RUNNING httpd Service: RUNNING ipa-custodia Service: RUNNING pki-tomcatd Service: RUNNING ipa-otpd Service: RUNNING ipa: INFO: The ipactl command was successful
추가 명령 옵션을 보려면
sudo ipactl --help
를 사용합니다.
사용자 및 그룹 생성
FreeIPA 서버 기본 설치 및 구성이 완료되면 다음 단계는 사용자 및 그룹 생성으로 구성된 ID 관리를 처리하는 것입니다. 이 작업을 수행하기 전에 Kerberos 토큰을 생성합니다.
-
사용자
admin
에 대한 토큰을 생성합니다.kinit admin
-
기존 토큰 목록을 가져옵니다.
klist
Kerberos 토큰은 기본적으로 24시간 동안 유효합니다. 이전에 "CLI(명령줄 인터페이스 액세스)" 단계에서 이러한 명령을 실행했기 때문에 새 토큰을 만드는 대신 원래 토큰이 목록에 표시됩니다.
-
새 사용자 그룹을 추가합니다.
FreeIPA는 사용자 그룹을 표준 비밀번호 정책, 권한 및 기타 특성을 가진 사용자 집합으로 정의합니다.
유저 그룹은 다음을 포함할 수 있습니다.
- 사용자
- 기타 사용자 그룹
- FreeIPA 외부에 있는 외부 사용자
ipa group-add foo
출력 예:
[oracle@freeipa ~]$ ipa group-add foo ----------------- Added group "foo" ----------------- Group name: foo GID: 1326400003
FreeIPA 서버는 다음 세 가지 그룹 유형을 지원합니다.
- POSIX(기본값)
- 비POSIX
- 외부
foo
그룹은 POSIX 사용자 그룹입니다. 다른 그룹 유형을 지정하려면 다음 옵션 중 하나를 사용합니다.
--nonposix
- 비POSIX 그룹 생성--external
- 외부 그룹 생성
-
모든 기존 사용자 그룹의 목록을 가져옵니다.
ipa group-find
출력 예:
[oracle@freeipa ~]$ ipa group-find ---------------- 5 groups matched ---------------- Group name: admins Description: Account administrators group GID: 1326400000 Group name: editors Description: Limited admins who can edit other users GID: 1326400002 Group name: foo GID: 1326400003 Group name: ipausers Description: Default group for all users Group name: trust admins Description: Trusts administrators group ---------------------------- Number of entries returned 5 ----------------------------
FreeIPA 서버는 설치 중 다음 사용자 그룹을 만듭니다.
admins
ipausers
trust admins
경고: 기본
admin
사용자를 포함하므로admin
그룹을 삭제하지 마십시오. FreeIPA 서버의 경우admin
그룹이 올바르게 작동해야 합니다. -
새 유저 계정을 추가합니다.
ipa user-add
이 명령은 사용자 계정을 만드는 데 필요한 최소 데이터 세트 FreeIPA에 대해 대화식 스크립트를 실행합니다.
출력 예:
[oracle@freeipa ~]$ ipa user-add First name: Oracle Last name: User User login [ouser]: oracle ------------------- Added user "oracle" ------------------- User login: oracle First name: Oracle Last name: User Full name: Oracle User Display name: Oracle User Initials: OU Home directory: /home/oracle GECOS: Oracle User Login shell: /bin/sh Principal name: oracle@LV.VCN.ORACLEVCN.COM Principal alias: oracle@LV.VCN.ORACLEVCN.COM Email address: oracle@lv.vcn.oraclevcn.com UID: 1326400004 GID: 1326400004 Password: False Member of groups: ipausers Kerberos keys available: False
또는 여러 옵션과 함께 명령을 실행하면 비대화식 모드로 사용자 계정을 만들 수 있습니다. 사용 가능한 옵션 목록을 가져오려면
ipa user-add --help
를 실행합니다. -
새 사용자 그룹에 새 사용자를 추가합니다.
ipa group-add-member foo --users=oracle
출력 예:
[oracle@freeipa ~]$ ipa group-add-member foo --users=oracle Group name: foo GID: 1326400003 Member users: oracle ------------------------- Number of members added 1 -------------------------
ipa
명령은 표시된 것보다 많은 기능을 제공합니다. 추가 명령의 경우 전체 목록을 보려면 ipa help commands
를 실행하십시오.
다음 단계
결론적으로 이 실습에서는 FreeIPA 서버 설치 및 사용의 기본 사항을 소개합니다. FreeIPA에는 여기에서 다루는 것 이상의 많은 추가 기능이 있으므로 아래 링크를 사용하거나 제품 설명서 페이지를 통해 자세히 알아보십시오.
관련 링크
추가 학습 자원
docs.oracle.com/learn에서 다른 랩을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하세요. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning Explorer가 되십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.