Skip to content
generated from sacloud/go-template

Go言語向け さくらのクラウド IAM APIライブラリ

License

Notifications You must be signed in to change notification settings

sacloud/iam-api-go

iam-api-go

Go Reference Tests Go Report Card

さくらのクラウド「IAM」APIのGoクライアントライブラリ

概要

このライブラリは、さくらのクラウド「IAM」APIをGo言語から利用するためのクライアントです。 OpenAPI仕様から自動生成された型安全なAPIクライアントと、それをラップして使い勝手を向上させたクライアントを提供します。

Warning

v1.0に達するまでは互換性のない形で変更される可能性がありますのでご注意ください。

インストール

go get github.com/sacloud/iam-api-go

使い方

package main

import (
    "context"
    "os"

    "github.com/sacloud/iam-api-go"
    "github.com/sacloud/iam-api-go/apis/user"
    "github.com/sacloud/saclient-go"
)

var theClient saclient.Client

func main() {
	err := theClient.FlagSet(flag.PanicOnError).Parse(os.Args[1:])
    if err != nil {
        // エラーハンドリング
	}

    err = theClient.SetEnviron(os.Environ())
    if err != nil {
        // エラーハンドリング
	}

    client, err := iam.NewClient(&theClient)
    if err != nil {
        // エラーハンドリング
    }

    // 例: ユーザー一覧取得
    ctx := context.Background()
    users, err := iam.NewUserOp(client).List(ctx, user.ListParams{})
    if err != nil {
        // エラーハンドリング
    }
}

APIの詳細はGoDocapis/v1/配下の型定義を参照してください。

認証情報

APIを実行するには認証が必要です。インタラクティブな環境の場合おすすめは usacloud を使って設定ファイルを作成することです。たとえば

usacloud config create --name production

にて作成したプロファイル production があるとすると、上記のmain関数をもつバイナリは

./a.out --profile=production

のようにして設定を読み込むことができます。

一方でCI環境のようにファイルに書き出すのが適切ではない場合、環境変数経由で

export SAKURA_SERVICE_PRINCIPAL_ID=sub
export SAKURA_SERVICE_PRINCIPAL_KEY_ID=kid
export SAKURA_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----...

./a.out --profile=production

のように指定できます。

なおIAMの各機能を利用するには各機能を利用できる権限を付与したサービスプリンシパルが必要です。 さくらのクラウド マニュアルの サービスプリンシパル 内「ロールの付与」、および IAMポリシー 内「設定方法」をご参照ください。

単体テストを流すのに必要な権限に関しては ./doc/testing.md もご参照ください。

開発

ビルドやテストはMakefile経由で実行できます。

make
make test

ライセンス

Copyright (C) 2025- The sacloud/iam-api-go Authors. このプロジェクトはApache 2.0 Licenseの下で公開されています。

About

Go言語向け さくらのクラウド IAM APIライブラリ

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •