クイックスタート: クライアント ライブラリの使用

このページでは、使い慣れたプログラミング言語で Cloud Identity and Access Management API を使用する方法について説明します。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP Console のプロジェクト セレクタのページで、GCP プロジェクトを選択または作成します。

    プロジェクト セレクタのページに移動

  3. Cloud Identity and Access Management API を有効にします。

    APIs を有効にする

  4. 認証情報の設定:
    1. GCP Console で [サービス アカウントキーの作成] ページに移動します。

      [サービス アカウントキーの作成] ページに移動
    2. [サービス アカウント] リストから [新しいサービス アカウント] を選択します。
    3. [サービス アカウント名] フィールドに名前を入力します。
    4. [役割] リストで、[プロジェクト] > [オーナー] を選択します。

      : [役割] フィールドの設定により、リソースにアクセスするサービス アカウントが承認されます。このフィールドは、後から GCP Console で表示または変更できます。本番環境アプリケーションを開発している場合は、[プロジェクト] > [オーナー] よりも詳細な権限を指定します。詳しくはサービス アカウントへの役割の付与をご覧ください。
    5. [作成] をクリックします。キーが含まれている JSON ファイルがパソコンにダウンロードされます。
  5. 環境変数 GOOGLE_APPLICATION_CREDENTIALS をサービス アカウント キーが含まれる JSON ファイルのファイルパスに設定します。この変数は現在のシェル セッションにのみ適用されるため、新しいセッションを開く場合は、変数を再度設定してください。

v1-rev71-1.25.0 https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/spanner/ 1.2.0 https://cloud.spring.io/spring-cloud-static/spring-cloud-gcp/.RELEASE/

クライアント ライブラリのインストール

C#

C# 開発環境の設定の詳細については、C# 開発環境設定ガイドをご覧ください。
    install-package Google.Apis.Iam.v1
    

Go

    go get -u golang.org/x/oauth2/google
    go get -u google.golang.org/api/iam/v1
    

Java

Java 開発環境の設定の詳細については、Java 開発環境設定ガイドをご覧ください。 Maven を使用している場合は、pom.xml ファイルに以下の内容を追加します。
<dependency>
      <groupId>com.google.apis</groupId>
      <artifactId>google-api-services-iam</artifactId>
      <version>v1-rev20200221-1.30.9</version>
    </dependency>

Python

Python 開発環境の設定の詳細については、Python 開発環境設定ガイドをご覧ください。
    pip install --upgrade google-api-python-client google-auth google-auth-httplib2
    

Cloud IAM Roles API の呼び出し

認証情報を取得してから、Cloud IAM Roles API を呼び出し、以下のコードを使用して利用可能な役割のリストを表示します。

C#

詳細については、Cloud IAM C# API のリファレンス ドキュメントをご覧ください。


    using System;
    using System.Collections.Generic;
    using Google.Apis.Auth.OAuth2;
    using Google.Apis.Iam.v1;
    using Google.Apis.Iam.v1.Data;

    public class QuickStart
    {
        public static void Main(string[] args)
        {
            // Get credentials
            var credential = GoogleCredential.GetApplicationDefault()
                .CreateScoped(IamService.Scope.CloudPlatform);

            // Create the Cloud IAM service object
            IamService service = new IamService(new IamService.Initializer
            {
                HttpClientInitializer = credential
            });

            // Call the Cloud IAM Roles API
            ListRolesResponse response = service.Roles.List().Execute();
            IList<Role> roles = response.Roles;

            // Process the response
            foreach (Role role in roles)
            {
                Console.WriteLine("Title: " + role.Title);
                Console.WriteLine("Name: " + role.Name);
                Console.WriteLine("Description: " + role.Description);
                Console.WriteLine();
            }
        }
    }

Go

詳細については、Cloud IAM Go API のリファレンス ドキュメントをご覧ください。


    // The quickstart command is an example of using the Cloud IAM Roles API.
    package main

    import (
    	"context"
    	"log"

    	"google.golang.org/api/iam/v1"
    )

    func main() {
    	// Create the Cloud IAM service object.
    	ctx := context.Background()
    	service, err := iam.NewService(ctx)
    	if err != nil {
    		log.Fatalf("iam.NewService: %v", err)
    	}

    	// Call the Cloud IAM Roles API.
    	resp, err := service.Roles.List().Do()
    	if err != nil {
    		log.Fatalf("Roles.List: %v", err)
    	}

    	// Process the response.
    	for _, role := range resp.Roles {
    		log.Println("Title: " + role.Title)
    		log.Println("Name: " + role.Name)
    		log.Println("Description: " + role.Description)
    	}
    }
    

Java

詳細については、Cloud IAM Java API のリファレンス ドキュメントをご覧ください。


    package com.google.iam.snippets;

    import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
    import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
    import com.google.api.client.json.jackson2.JacksonFactory;
    import com.google.api.services.iam.v1.Iam;
    import com.google.api.services.iam.v1.IamScopes;
    import com.google.api.services.iam.v1.model.ListRolesResponse;
    import com.google.api.services.iam.v1.model.Role;
    import java.util.Collections;
    import java.util.List;

    public class Quickstart {

      public static void main(String[] args) throws Exception {
        // Get credentials
        GoogleCredential credential =
            GoogleCredential.getApplicationDefault()
                .createScoped(Collections.singleton(IamScopes.CLOUD_PLATFORM));

        // Create the Cloud IAM service object
        Iam service =
            new Iam.Builder(
                    GoogleNetHttpTransport.newTrustedTransport(),
                    JacksonFactory.getDefaultInstance(),
                    credential)
                .setApplicationName("quickstart")
                .build();

        // Call the Cloud IAM Roles API
        ListRolesResponse response = service.roles().list().execute();
        List<Role> roles = response.getRoles();

        // Process the response
        for (Role role : roles) {
          System.out.println("Title: " + role.getTitle());
          System.out.println("Name: " + role.getName());
          System.out.println("Description: " + role.getDescription());
          System.out.println();
        }
      }
    }

Python

詳細については、Cloud IAM Python API のリファレンス ドキュメントをご覧ください。

import os

    from google.oauth2 import service_account
    import googleapiclient.discovery

    # Get credentials
    credentials = service_account.Credentials.from_service_account_file(
        filename=os.environ['GOOGLE_APPLICATION_CREDENTIALS'],
        scopes=['https://www.googleapis.com/auth/cloud-platform'])

    # Create the Cloud IAM service object
    service = googleapiclient.discovery.build(
        'iam', 'v1', credentials=credentials)

    # Call the Cloud IAM Roles API
    # If using pylint, disable weak-typing warnings
    # pylint: disable=no-member
    response = service.roles().list().execute()
    roles = response['roles']

    # Process the response
    for role in roles:
        print('Title: ' + role['title'])
        print('Name: ' + role['name'])
        if 'description' in role:
            print('Description: ' + role['description'])
        print('')

出力は役割に関する情報のリストです。次のように表示されます。

    Title: App Engine Admin
    Name: roles/appengine.appAdmin
    Description: Full management of App Engine apps (but not storage).

    Title: App Engine Viewer
    Name: roles/appengine.appViewer
    Description: Ability to view App Engine app status.
    

これで、Cloud IAM への最初のリクエストを送信できました。

いかがでしたか。

次のステップ

Cloud IAM のドキュメントで、クライアント ライブラリを使用するコード スニペットを参照できます。

クライアント ライブラリで使用できる API は、REST API で使用できる API をミラーリングしたものです。詳細については、REST API リファレンスをご覧ください。