GCP サービスの認証

GCP サービスにアクセスするには、Google Cloud コンソールを使用してサービスアカウントを作成します(別の方法として、gcloud CLI、REST 呼び出しまたはプログラムを使用することもできます)。このようなアカウントは、Google Cloud の ID およびアクセス管理(IAM)で管理されます。IAM を使用すると、特定の Google Cloud リソースへのきめ細かなアクセスをサービスアカウントに付与することができます。例えば、選ばれたプリンシパル(ユーザーサービスアカウント)に適用できる特定のアクセス権を持つ役割を定義して、PubSub トピックや Storage バケットなどの特定のリソースへのアクセスを許可または制限することができます。  

様々な種類のサービスアカウントの概要については、https://cloud.google.com/iam/docs/service-account-overview の Google 記事を参照してください。

サービスアカウントキーファイルを作成するには、次の手順に従います。

  1. Google Cloud コンソールで、サービスアカウントページに移動します。

  2. プロジェクトを選択します。

  3. キーの作成対象となるサービスアカウントの電子メールアドレスをクリックします。

  4. 「キーの追加」ドロップダウンメニューをクリックして、「新しいキーを作成」を選択します。

  5. 「キータイプ」として「JSON」を選択し、「作成」をクリックして、サービスアカウントキーファイルをダウンロードします。

ダウンロードされたファイルは、次のような形式になっています。

{ 
  "type": "service_account", 
  "project_id": "PROJECT_ID", 
  "private_key_id": "KEY_ID", 
  "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", 
  "client_email": "SERVICE_ACCOUNT_EMAIL", 
  "client_id": "CLIENT_ID", 
  "auth_uri": "https://accounts.google.com/o/oauth2/auth", 
  "token_uri": "https://accounts.google.com/o/oauth2/token", 
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", 
  "client_x509_cert_url":"https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL" 
} 

このファイルが安全に格納されていることを確認してください。詳しくは、https://cloud.google.com/iam/docs/service-accounts-create を参照してください。

アクセス資格情報を含んだ JSON ファイルを CFML コードで使用して、GCP サービスに対する認証を行うことができます。

<cfscript> 
    pubsubSvc = getCloudService(
        { 
            &quot;vendorName&quot; = &quot;GCP&quot;, 
            &quot;credentialJSONFilePath&quot; = expandPath('./credentials.json')		
        }, 
        { 
            &quot;serviceName&quot; = &quot;pubsub&quot; 
        } 
    ) 
</cfscript> 

資格情報構造体が 資格情報の JSON ファイルに含まれていない場合は、プロジェクト ID を資格情報構造体に渡すことができます。

<cfscript> 
    pubsubSvc = getCloudService( 
    { 
        vendorName = &quot;GCP&quot;, 
        credentialJSONFilePath = expandPath('./credentials.json'), 
        projectID = &quot;<yourProjectID>&quot;			 
    }, 
    { 
        &quot;serviceName&quot; = &quot;pubsub&quot; 
    } 

) 
</cfscript> 

環境変数へのデフォルト資格情報の設定

また、下記のシステムプロパティを設定することで、環境変数にデフォルトのアプリケーション資格情報を設定することもできます。それによって、getCloudService メソッドの呼び出しで同じものを渡す必要がなくなります。このアプローチでは、アプリケーションへの資格情報の埋め込みを避けることができます。 

GOOGLE_APPLICATION_CREDENTIALS=path/to/your/service_accont_key_file.json 

<cfscript>     
    writeOutput(server.system.environment.GOOGLE_APPLICATION_CREDENTIALS) 
    gcpPSCred = { 
        &quot;vendorName&quot; = &quot;GCP&quot; 
    }		 
    gcpPSConfig = { 
        &quot;serviceName&quot; = &quot;pubsub&quot; 
    } 
    pubsubSvc = getCloudService(gcpPSCred, gcpPSConfig) 
</cfscript> 

詳しくは、https://cloud.google.com/docs/authentication/application-default-credentials#GAC を参照してください。

ColdFusion Administrator で定義したクラウド資格情報またはクラウド設定サービスエイリアスを使用するには、次の方法でクラウドサービスクライアントオブジェクトを作成します。

<cfscript> 
    pubsubSvc = getCloudService(&quot;GCPCloudCredentialsAlias&quot;, &quot;GCPCloudServiceConfigAlias&quot;) 
</cfscript> 

ヘルプをすばやく簡単に入手

新規ユーザーの場合

Adobe MAX 2025

Adobe MAX Japan
クリエイターの祭典

2025 年 2 月 13 日
東京ビッグサイト