Google Serviceアカウントを使用した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サービス・アカウントを使用して、(サービス・アカウントにIAMロール構成を介したアクセス権限が付与された後)アプリケーションから認可されたGCP REST APIコールを作成できます。 アプリケーションがGCPサービス・アカウント・ベースの認証でコールを行うと、初期コールはOAuth 2.0を使用して一時アクセス・トークンを生成します。 OAuth 2.0アクセス・トークンは1時間有効です。 その時間内の後続のリクエストでは、OAuth 2.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バケットに設定します。
-
アプリケーションがGCPリソースにアクセスするときに、コードの長期ユーザー資格証明を指定する必要がないため、Googleサービス・アカウント・ベースの資格証明はより優れたセキュリティを提供します。 Autonomous Databaseは、Googleサービス・アカウントの一時資格証明を管理するため、データベースにGCPリソース・ユーザー資格証明を格納する必要はありません。
Googleサービス・アカウントの詳細は、「サービス・アカウント」を参照してください。
Googleサービス・アカウントの有効化とGCPサービス・アカウント名の検索
Google Cloud Platform (GCP)リソースをGoogleサービス・アカウントで使用する前に、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サービス・アカウントを有効にします。 詳細については、「Googleサービス・アカウントの有効化とGCPサービス・アカウント名の検索」を参照してください。
これらのステップを完了すると、ロールおよびプリンシパルが割り当てられます。 これにより、Autonomous Databaseインスタンスで実行されているアプリケーションは、Googleサービス・アカウントを使用してGCPリソースにアクセスできます。
DBMS_CLOUDでのGoogleサービス・アカウントの使用
Google Cloud Platform (GCP)リソースにアクセスするためのDBMS_CLOUDコールを行い、資格証明名をGCP$PAとして指定すると、Google Cloud Platform側での認証は、Googleサービス・アカウントを使用して行われます。
まだ実行していない場合は、前提条件ステップを実行します:
-
ADMINスキーマまたは別のスキーマを有効にして、Googleサービス・アカウント認証を使用します。 詳細については、「Googleサービス・アカウントの有効化とGCPサービス・アカウント名の検索」を参照してください。
-
アクセスするリソースの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サービス・アカウントを有効にするステップを実行します。



