Identity and Access Management (IAM)認証によるAutonomous Databaseへの接続
After the ADMIN user enables Oracle Cloud Infrastructure IAM on Autonomous Database, users log in to the Autonomous Database instance using their Oracle Cloud Infrastructure IAM credentials or access the database through an Oracle Cloud Infrastructure IAM database token.
Oracle Cloud Infrastructure IAMユーザー・アクセスを有効にした後、ローカル・データベース・アカウント・ユーザー名とパスワード(非グローバル・データベース・ユーザー・アカウント)を使用してAutonomous Databaseにログインすることもできます。
データベース・クライアントを使用して、Autonomous DatabaseインスタンスにOracle Cloud Infrastructure IAMユーザーとしてアクセスできます。Oracle Cloud Infrastructure IAM IAMのユーザー名とパスワードの資格証明およびパスワード・ベリファイアを使用するクライアントを使用するには、データベース・クライアントが12c以上である必要があります。
または、Oracle Cloud Infrastructure IAMデータベース・トークンを使用して、Autonomous Databaseインスタンスにアクセスできます。IAMトークンを使用するには、最新のOracle Databaseクライアント19c (19.16以上)が必要です。一部の以前のクライアントは、トークン・アクセス用の限られた一連の機能を提供します。
次の例は、Oracle Cloud Infrastructure IAMのユーザー名とパスワードでデータベースにアクセスするためのSQL*Plusを使用したパスワード・ベリファイア、およびOracle Cloud Infrastructure IAMデータベース・トークンでSQL*Plusを使用するために必要なステップを示しています。
Autonomous Databaseインスタンスが制限モードの場合、ADMINなどのRESTRICTED SESSION
権限を持つユーザーのみがデータベースに接続できます。
Oracle Cloud Infrastructure IAMデータベース・トークンを使用して、次のものを含む、サポートされているクライアントでAutonomous Databaseインスタンスにアクセスできます:
-
IAMトークン認証をサポートするJDBC-Thinは、次でサポートされています:
-
JDBCバージョン19.13.0.0.1(以降): JDBCドライバについては、JDBCおよびUCPダウンロードを参照してください。
-
JDBCバージョン21.4.0.0.1 (以降): JDBCドライバについては、JDBCおよびUCPダウンロードを参照してください。
詳細は、IAMトークンベース認証のサポートを参照してください:
-
- SQL*PlusおよびOracle Instant Client: バージョン19.13以降のLinux上のSQL*PlusおよびInstant Client、およびバージョン21.4以降のLinux上のInstant Clientでサポートされます。
詳細は、Identity and Access Management (IAM)トークンベース認証を参照してください。
-
データベース・クライアントは、IAMユーザー名およびIAMデータベース・パスワードを使用してデータベース・トークンを取得するように構成することもできます。
詳細は、「IAMユーザー名およびデータベース・パスワードによってリクエストされたトークンを使用するクライアント接続」を参照してください。
-
.NETクライアント(最新バージョンのLinuxまたはWindows)。.NETソフトウェア・コンポーネントは、次のサイトから無料でダウンロードできます:
- IAMを使用したAutonomous Databaseインスタンスへの接続について
IAMユーザーは、IAMデータベース・パスワード・ベリファイアまたはIAMトークンを使用してAutonomous Databaseインスタンスに接続できます。 - IAMデータベース・パスワードを使用するSQL*Plusのクライアント接続の構成
IAMデータベース・パスワードを使用するようにSQL*Plusを構成できます。 - IAMトークンを使用するSQL*Plusのクライアント接続の構成
IAMトークンを使用するSQL*Plusのクライアント接続を構成できます。 - インスタンス・プリンシパルを使用したIdentity and Access Management (IAM)認証によるAutonomous Databaseへのアクセス
ADMINユーザーがAutonomous DatabaseでOracle Cloud Infrastructure IAMを有効にすると、アプリケーションはインスタンス・プリンシパルを使用してOracle Cloud Infrastructure IAMデータベース・トークンを介してデータベースにアクセスできます。
IAMを使用したAutonomous Databaseインスタンスへの接続について
IAMユーザーは、IAMデータベース・パスワード・ベリファイアまたはIAMトークンを使用して、Autonomous Databaseインスタンスに接続できます。
IAMデータベース・パスワード・ベリファイアの使用は、Oracle Databaseのパスワード認証プロセスと似ています。ただし、パスワード・検証者(パスワードの暗号化されたハッシュ)がOracleデータベースに格納されるかわりに、検証者はOracle Cloud Infrastructure (OCI) IAMユーザー・プロファイルの一部として格納されます。
データベースにIAMトークンを使用する2つ目の接続方法は、より先進的です。トークン・ベース・アクセスの使用は、Autonomous Databaseなどのクラウド・リソースに適しています。トークンは、IAMエンドポイントで強制できる強度に基づきます。これはマルチファクタ認証である可能性があり、パスワードのみを使用するよりも強力です。トークンを使用するもう1つの利点は、パスワード・ベリファイア(機密とみなされる)がメモリーに格納されず、メモリーで使用できないことです。データベース・アクセスにトークンを使用する場合は、TCPS (TLS)接続が必要です。
IAMトークンを渡すときにネイティブ・ネットワーク暗号化を設定することはできません。Transport Layer Security (TLS)のみがサポートされ、ネイティブ・ネットワーク暗号化やTLSによるネイティブ・ネットワーク暗号化はサポートされていません。
- IAMデータベース・パスワード・ベリファイアを使用するクライアント接続
IAMユーザーに必要な認可を構成すると、このユーザーは、追加の構成なしで、SQL*PlusやSQLclなどの既存のクライアント・アプリケーションを使用してログインできます。 - クライアント・アプリケーションまたはツールによってリクエストされたトークンを使用するクライアント接続
Autonomous DatabaseへのIAMトークン・アクセスの場合、クライアント・アプリケーションまたはツールによって、IAMユーザーのために、IAMからデータベース・トークンがリクエストされます。
IAMデータベース・パスワード・ベリファイアを使用するクライアント接続
IAMユーザーに必要な認可を構成した後、このユーザーは、追加の構成なしで、SQL*PlusやSQLclなどの既存のクライアント・アプリケーションを使用してログインできます。
12C
パスワード・ベリファイアを使用できる必要があります。11G
ベリファイア暗号化の使用は、IAMではサポートされていません。IAMユーザーがOCI DBaaSインスタンスに接続するために、特別なクライアントまたはツールの構成は必要ありません。
クライアント・アプリケーションまたはツールによってリクエストされたトークンを使用するクライアント接続
Autonomous DatabaseへのIAMトークン・アクセスのために、クライアント・アプリケーションまたはクライアント・ツールが、IAMユーザーのために、IAMからデータベース・トークンをリクエストします。
クライアント・アプリケーションは、データベース・クライアントAPIを介してデータベース・トークンを直接データベース・クライアントに渡します。
IAMトークンをリクエストするようにアプリケーションまたはツールが更新されていない場合、IAMユーザーはOracle Cloud Infrastructure (OCI)コマンドライン・インタフェース(CLI)を使用してデータベース・トークンをリクエストおよび格納できます。次の資格証明を使用して、データベース・アクセス・トークン(db-token
)をリクエストできます:
- セキュリティ・トークン(IAM認証あり)、委任トークン(OCIクラウド・シェル内)および
API-keys
(認証を有効にするためのIAMユーザーを表す資格証明) - インスタンス・プリンシパル・トークン。認証後、インスタンスがサービス・リソース上でアクションを実行するための認可されたアクター(またはプリンシパル)になることを可能にします
- リソース・プリンシパル・トークン。これは、アプリケーションが他のOracle Cloud Infrastructureサービスに自身を認証できるようにする資格証明です
- IAMユーザー名およびIAMデータベース・パスワードの使用(データベース・クライアントのみがリクエスト可能)
IAMユーザーがスラッシュ(/
)ログインでクライアントにログインし、OCI_IAM
パラメータが構成されている(sqlnet.ora
、tnsnames.ora
または接続文字列の一部として)場合、データベース・クライアントはファイルからデータベース・トークンを取得します。IAMユーザーがユーザー名とパスワードを送信する場合、接続では、IAMデータベース・パスワード・ベリファイアを使用するクライアント接続について記述されたIAMデータベース・ベリファイア・アクセスが使用されます。このガイドの手順は、OCI CLIをデータベース・トークンのヘルパーとして使用する方法を示しています。アプリケーションまたはツールがIAMと連携するように更新されている場合は、アプリケーションまたはツールの手順に従います。一般的なユース・ケースには、SQLPlusオンプレミス、SQLclオンプレミス、クラウド・シェルのSQL*Plus、SEPウォレットを使用するアプリケーションなどがあります。
IAMトークンを使用するSQL*Plusのクライアント接続の構成
IAMトークンを使用するSQL*Plusのクライアント接続を構成できます。
TOKEN_AUTH
パラメータで更新した後、IAMユーザーは次のコマンドを実行してSQL*Plusを起動し、Autonomous Databaseインスタンスにログインできます。接続記述子自体を含めることも、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,
O=Example Corporation,
L=Redwood City, ST=California, C=US")
(TOKEN_AUTH=OCI_TOKEN)))
TOKEN_AUTH
はsqlnet.ora
ファイルまたは接続文字列のいずれかですでに設定されているため、データベース・クライアントはdb-token
を取得するようにすでに構成されています。データベース・クライアントは、db-token
を取得し、秘密キーを使用して署名してからトークンをAutonomous Databaseに送信します。スラッシュ(/
)のかわりにIAMユーザー名およびIAMデータベース・パスワードが指定されている場合、データベース・クライアントはdb-token
を使用するかわりに、パスワードを使用して接続します。
インスタンス・プリンシパルを使用したIdentity and Access Management (IAM)認証によるAutonomous Databaseへのアクセス
ADMINユーザーがAutonomous DatabaseでOracle Cloud Infrastructure IAMを有効にすると、アプリケーションはインスタンス・プリンシパルを使用してOracle Cloud Infrastructure IAMデータベース・トークンを通じてデータベースにアクセスできます。
詳細は、インスタンス・プリンシパルを使用したOracle Cloud Infrastructure APIへのアクセスを参照してください。