MENU

さくらのクラウド「サービスプリンシパルキー」外部利用の手順|アクセストークン取得とAPI操作

目次

さくらのクラウド「サービスプリンシパルキー」外部利用の手順|アクセストークン取得とAPI操作

こんにちは、UOZUです。

さくらのクラウドでは、これまでもWorkflowsなどで利用するためのサービスプリンシパル機能が提供されていましたが、今回「その他の環境から使う場合」というセクションがマニュアルに追加され、クラウド外のサーバーやスクリプトからも安全にAPI操作が可能になりました。

さくらのクラウドニュース
「サービスプリンシパルキー」機能 提供開始のお知らせ さくらのクラウドに関連するニュースをお届けします

APIキーを直接使うよりもセキュアで柔軟なサービスプリンシパル、早速確認してみましょう!

サービスプリンシパルキー用の公開鍵を作成

まずは、認証に必要となる鍵ペアを用意します。PEM形式のRSA 4096ビットで秘密鍵と公開鍵をssh-keygenコマンドで発行しておきます。

秘密鍵と公開鍵の生成

生成された公開鍵をPEM形式に変換

この時点は公開鍵がSSH用になっているので、PEM形式に変換します

このPEM形式の公開鍵を、さくらのクラウドのコントロールパネルからサービスプリンシパルキーを発行する際に登録しておきましょう。

スクリプトでのアクセストークン取得とAPI操作

サービスプリンシパルキーを利用した認証フローは、秘密鍵でJWT(JSON Web Token)に署名し、それを認証エンドポイントに投げることで一時的なアクセストークンを取得する仕組みです。

サービスプリンシパルキー

│ (秘密鍵でJWT署名)

JWT生成

│ POST

https://secure.sakura.ad.jp/cloud/api/iam/1.0/service-principals/oauth2/token


アクセストークンの取得

具体的な署名方法までは書かれていませんでしたが、最終的に以下の様なスクリプトでアクセストークンの取得までが可能でした。(有効期限は10分で設定しています。)

Bearer のトークンに指定する事で、マニュアル通りにリソース一覧も呼び出せそうです

他のさくらのクラウドAPIも利用可能ですね!

以前お話ししたパケットフィルタの設定と同様に、適切な権限管理を行いながら、このように外部からAPIを叩けるのは非常に強力ですね。

最後に

これまでは「APIキー」を発行してリソースを操作するのが一般的でしたが、今回登場した「サービスプリンシパルキー」は、署名や有効期限を利用することで、よりセキュアな運用を可能にしています。

また、単独のサービスプリンシパルに対して複数のキーを発行できる柔軟性は、チーム開発や複数の自動化ツールを運用する際に活きてきそうです。サーバー単独に権限を絞る「シングルサーバAPIキー」など、さくらのクラウドが提供する多様な認証手段をうまく使い分けていきたいところですね。

最後までお読みいただき、ありがとうございます!

お問い合わせ

この記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ネットアシスト運用チームのマネージャー
さくらのクラウド検定 2024年 第1回試験 合格済み

目次