Googleサービス・アカウントを使用したGoogle Cloud Platformリソースへのアクセス
Googleサービス・アカウントを使用して、Autonomous DatabaseインスタンスからGoogle Cloud Platform (GCP)リソースにアクセスできます。
- Googleサービス・アカウントを使用したGoogle Cloudリソースへのアクセスについて
Autonomous DatabaseでGoogleサービス・アカウント・ベースの認証を使用すると、アプリケーションは、GCPリソースの長期IAMアクセス・キーに基づいて資格証明を作成および保存することなく、Google Cloud Platform (GCP)リソースに安全にアクセスできます。 - Googleサービス・アカウントの有効化とGCPサービス・アカウント名の検索
Googleサービス・アカウントでGoogle Cloud Platform (GCP)リソースを使用する前に、Autonomous DatabaseインスタンスのGCPアクセスを有効にする必要があります。 - Googleサービス・アカウントへのロールの割当てとGCPリソースへのアクセスの提供
Autonomous DatabaseインスタンスからGoogle Cloud Platform (GCP)リソースを使用するには、ユーザーまたはGoogle Cloud管理者が、アプリケーションがアクセスするGoogleサービス・アカウントにロールおよび権限を割り当てる必要があります。Googleサービス・アカウントにロールを割り当てるだけでなく、Google Cloud管理者を使用するGCPリソースに対してGoogle IAMプリンシパルを追加する必要があります。 - DBMS_CLOUDでのGoogleサービス・アカウントの使用
DBMS_CLOUD
コールを実行してGoogle Cloud Platform (GCP)リソースにアクセスし、資格証明名をGCP$PA
として指定すると、Google Cloud Platform側での認証はGoogleサービス・アカウントを使用して行われます。 - Googleサービス・アカウントの無効化
Google Cloud Platform (GCP)リソースへのGoogleサービス・アカウント・アクセスを無効にするには、DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH
を使用します。 - Googleサービス・アカウント・ノート
Googleサービス・アカウントの使用に関するノート。
親トピック: リソースにアクセスするためのポリシーとロールの構成
Googleサービス・アカウントを使用したGoogle Cloudリソースへのアクセスについて
Autonomous DatabaseでGoogleサービス・アカウント・ベースの認証を使用すると、アプリケーションは、GCPリソースの長期IAMアクセス・キーに基づいて資格証明を作成および保存することなく、Google Cloud Platform (GCP)リソースに安全にアクセスできます。
Googleサービス・アカウントは、アプリケーションによって使用される特殊なGCPアカウントです。Googleサービス・アカウントを使用して、認可されたGCP REST APIコールをアプリケーションから実行できます(サービス・アカウントにIAMロール構成を介したアクセス権限が付与された後)。アプリケーションがGCPサービス・アカウント・ベースの認証でコールを行うと、初期コールはOAuth2.0を介して一時アクセス・トークンを生成します。OAuth2.0アクセス・トークンの有効期間は1時間です。1時間以内の後続のリクエストでは、OAuth2.0アクセス・トークンを使用して、認可されたGCP REST APIコールを行います。
たとえば、Google Cloud StorageからAutonomous Databaseにデータをロードし、データに対してなんらかの操作を実行してから、変更したデータをGoogle Cloud Storageに書き戻すことができます。Google Cloud StorageにアクセスするためのGCPユーザー資格証明がある場合は、サービス・アカウントを使用せずにこれを実行できます。ただし、ロールベースのGoogleサービス・アカウントを使用してAutonomous DatabaseからGCPリソースにアクセスするには、次の利点があります:
- Autonomous DatabaseインスタンスからGCPリソースにアクセスする必要があるユーザーやスキーマごとに異なるポリシーを使用して、ロールベースのアクセスを作成できます。これにより、ポリシーを設定して、ロール別にリソースへのアクセスを制限できます。たとえば、ロール別の読取り専用アクセスに制限されるポリシーをGoogle Cloud Storageバケットに設定します。
-
Googleサービス・アカウント・ベースの資格証明は、アプリケーションがGCPリソースにアクセスするときにコードに長期的なユーザー資格証明を指定する必要がないため、より優れたセキュリティを提供します。Autonomous Databaseは、Googleサービス・アカウントの一時資格証明を管理するため、GCPリソース・ユーザー資格証明をデータベースに格納する必要はありません。
Googleサービス・アカウントの詳細は、「サービス・アカウント」を参照してください。
Googleサービス・アカウントの有効化とGCPサービス・アカウントの検索
Googleサービス・アカウントでGoogle Cloud Platform (GCP)リソースを使用する前に、Autonomous DatabaseインスタンスのGCPアクセスを有効にする必要があります。
詳細は、ENABLE_PRINCIPAL_AUTHプロシージャを参照してください。
Googleサービス・アカウントへのロールの割当てとGCPリソースへのアクセスの提供
Autonomous DatabaseインスタンスからGoogle Cloud Platform (GCP)リソースを使用するには、ユーザーまたはGoogle Cloud管理者が、アプリケーションがアクセスするGoogleサービス・アカウントにロールおよび権限を割り当てる必要があります。Googleサービス・アカウントにロールを割り当てるだけでなく、Google Cloud管理者を使用するGCPリソースに対してGoogle IAMプリンシパルを追加する必要があります。
前提条件として、まずAutonomous DatabaseインスタンスでGoogleサービス・アカウントを有効にします。詳細については、Enable Google Service Account and Find the GCP Service Account Nameを参照してください。
これらのステップを完了すると、ロールとプリンシパルが割り当てられます。これにより、Autonomous Databaseインスタンスで実行されているアプリケーションは、Googleサービス・アカウントを使用してGCPリソースにアクセスできます。
DBMS_CLOUDでのGoogleサービス・アカウントの使用
DBMS_CLOUD
をコールしてGoogle Cloud Platform (GCP)リソースにアクセスし、資格証明名をGCP$PA
として指定すると、Google Cloud Platform側の認証はGoogleサービス・アカウントを使用して行われます。
まだ実行していない場合は、前提条件ステップを実行します。
-
ADMINスキーマまたは別のスキーマでGoogleサービス・アカウント認証を使用できるようにします。詳細については、Enable Google Service Account and Find the GCP Service Account Nameを参照してください。
-
アクセスするリソースのGoogle Cloud Platformロール割当てを実行します。詳細は、「Googleサービス・アカウントへのロールの割当てとGCPリソースへのアクセスの提供」を参照してください。
Googleサービス・アカウント認証でDBMS_CLOUD
プロシージャまたはファンクションを使用するには:
詳細は、次を参照してください:
-
GCP仮想ホスト・スタイルのリクエストの詳細は、リクエスト・エンドポイントを参照してください。
-
LIST_OBJECTS関数を参照してください。
Googleサービス・アカウントの無効化
Google Cloud Platform (GCP)リソースへのGoogleサービス・アカウント・アクセスを無効にするには、DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH
を使用します。
provider
値がGCP
で、username
がADMIN
ユーザー以外のユーザーである場合、プロシージャは指定されたユーザーから権限を取り消します。この場合、ADMIN
ユーザーおよび他のユーザーは、引き続きGCP$PA
を使用できます。
たとえば、adb_user
の権限を取り消すには:
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH
(
provider => 'GCP',
username => 'adb_user');
END;
/
provider
値がGCP
で、username
がADMIN
の場合、プロシージャはAutonomous DatabaseインスタンスでのGoogleサービス・アカウント・アクセスを無効にします。username
のデフォルト値はADMIN
です。
次に例を示します。
BEGIN
DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH
(
provider => 'GCP' );
END;
/
詳細は、DISABLE_PRINCIPAL_AUTHプロシージャを参照してください。
Googleサービス・アカウント・ノート
Googleサービス・アカウントの使用に関するノート。
-
Google Cloud Platform (GCP)の文字制限:
DBMS_CLOUD
は、Google Cloud Storageバケット名にアクセスするための"_"を含むURIをサポートしていません。Google Cloud Storageバケット名に「_」が含まれている場合、次のエラーが表示されることがあります。SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('GCP$PA', 'https://app_bucket.storage.googleapis.com/'); ORA-20006: Unsupported object store URI - https://app_bucket.storage.googleapis.com/ ORA-06512: at "C##CLOUD$SERVICE.DBMS_CLOUD", line 1306
-
Googleサービス・アカウントを使用したAutonomous Databaseインスタンスのクローニング: Googleサービス・アカウントを有効にしてインスタンスをクローニングする場合、Googleサービス・アカウント構成はクローンに継承されません。クローニングされたインスタンスでGoogleサービス・アカウントを有効にする場合は、クローンでGoogleサービス・アカウントを有効にするステップを実行します。