さくらのクラウドの「ユーザグループ機能」を使ってみた

この記事は [さくらインターネット Advent Calendar 2024](https://qiita.com/advent-calendar/2024/sakura) Part2 24日目の記事です。

この記事では、さくらのクラウドで最近リリースされた「ユーザグループ機能」を使ってみます。

https://www.sakura.ad.jp/corporate/information/announcements/2024/11/28/1968217837/

https://cloud.sakura.ad.jp/news/2024/11/28/user-group/

## さくらのクラウドについて

さくらのクラウドは、仮想化されたインフラを提供するクラウドサービスです。

さくらのクラウドでは、クラウドを操作する人ごとに `ユーザ` を作成し、その人に合わせた `アクセス権限` を与えることができます。

例えば、こんなイメージです。

- 開発責任者の「管理太郎」さん
    - サーバの作成や削除ができる必要がある
    - → 「管理太郎」さんの `ユーザ` には `作成・削除` という `アクセス権限` を与える
- 開発者の「開発太郎」さん
    - サーバの電源を操作できる必要がある
    - → 「開発太郎」さんの `ユーザ` には `電源操作` という `アクセス権限` を与える

今回追加されたユーザグループ機能を使うと、 `グループ` という単位で複数の `ユーザ` を整理できます。
`アクセス権限` は `グループ` にも与えることができるので、 `ユーザ` ではなく `グループ` に `アクセス権限` を与えることで、権限の管理や付け外しがしやすくなります。

## ユーザグループ機能を実際に使ってみた

ユーザグループ機能を実際に使い、「クラウドAPI開発チーム」という架空のチームの管理をしてみようと思います。

- 開発責任者の「管理太郎」さん
  - 「クラウドAPI開発チーム」で扱うリソースに対する全ての権限を持たせたい
  - 「さくらのクラウド」自体の管理もしていることとする
- 開発者の「開発太郎」さん
  - 「クラウドAPI開発チーム」で扱うリソースの電源操作だけできればよい

#### やること

1. アカウントを作成する
1. ユーザを作成する
1. グループを作成する
1. アカウントに対するアクセス権限を、グループに持たせる

### 1. アカウントを作成する

まずはチーム用の作業領域を作成しましょう。
さくらのクラウドのホーム画面で画面左側の「アカウント」をクリックします。

![スクリーンショット 2024-12-24 163338.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156203/af4decdf-0c16-aff2-c790-e02d2d50f27a.png)

画面左上の「アカウントの作成」をクリックします。

![スクリーンショット 2024-12-24 163550.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156203/9dba5fe6-c969-74e6-3230-64a0729d4601.png)

約款と個人情報の取扱いに同意します。

![スクリーンショット 2024-12-24 163902.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156203/23290ff5-bf4f-2723-d9a2-7161d3471038.png)

名前やアカウントコードを入力します。
今回は「クラウドAPI開発チーム」に対応するアカウントを作成します。
別途ユーザは作成するので、「このアカウント用の同名ユーザを作成」はチェックを外しましょう。

画面左上の「作成」をクリックするとアカウントが作られます。
これでチームに対応する作業領域ができました。

### 2. ユーザを作成する

続いてチームメンバーに対応する「ユーザ」を作成します。
画面左側の「ユーザ」をクリックします。

![スクリーンショット 2024-12-24 173129.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156203/fb39b7de-16c1-ff38-66a8-bc804718a298.png)

画面左上の「ユーザの作成」をクリックします。

![スクリーンショット 2024-12-24 165019.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156203/b4866b11-05b6-f0dc-f3d4-a66ca5a08cdc.png)

名前、ユーザコード、パスワードを入力して画面左上の「作成」をクリックするとユーザが作られます。
「管理太郎」「開発太郎」それぞれのユーザを作りましょう。

### 3. グループを作成する

次に「ユーザ」をまとめる「グループ」を作成します。
今回は、下記のような単位でグループを整理してみようと思います。

- さくらのクラウド管理者グループ ... 全社で使う「さくらのクラウド」を管理する
  - `リソース閲覧` 権限 ... どんなリソースが存在するか確認できる
  - `請求閲覧` 権限 ... アカウントの請求情報を確認できる
  - `イベントログ` 権限 ... 「さくらのクラウド」上でどのような操作が行われたか確認できる
- クラウドAPI開発チーム管理者グループ
  - `作成・削除` 権限 ... クラウドAPI開発チームで必要なリソースを作成・削除できる
- クラウドAPI開発チーム開発者グループ
  - `電源操作` 権限 ... クラウドAPI開発チームで使うリソースの電源を操作できる

まず、画面左側の「ユーザグループ」をクリックします。

![スクリーンショット 2024-12-24 165230.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156203/a0a35bef-42ca-1636-5b7f-45a86a85508e.png)

画面左上の「ユーザグループの作成」をクリックします。

![スクリーンショット 2024-12-24 165953.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156203/df968aca-c7dc-d1f3-9463-79d1ce27d0b0.png)

名前を入力し、所属させるユーザを選択して「作成」をクリックするとグループが作られます。
「さくらのクラウド管理者グループ」「クラウドAPI開発チーム管理者グループ」「クラウドAPI開発チーム開発者グループ」それぞれを作りましょう。

### 4. アカウントに対するアクセス権限を、グループに持たせる

画面左側の「アカウント」をクリックします。

![スクリーンショット 2024-12-24 170538.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156203/594dbaa5-1242-32fa-acd8-48e0a1184210.png)

先ほど作成した「クラウドAPI開発チーム」を選択します。

![スクリーンショット 2024-12-24 170837.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156203/9011716d-429b-8531-df25-0abd22468bc6.png)

画面下部にユーザやユーザグループが表示されます。

![スクリーンショット 2024-12-24 170927.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/156203/13654739-2761-9c83-4851-f810bdba0a89.png)

今回は「ユーザのアクセス権限」はいじらず、「ユーザグループのアクセス権限」だけを編集します。
「保存」をクリックすると、アカウントへのアクセス権限が保存されます。

これで、それぞれのグループに所属するユーザは、それぞれのグループに付与したアクセス権限を行使できるようになりました。
新しくメンバーが増えたときや、あるグループに持たせたい権限が変わったときは、グループにユーザを追加したり、グループの持つアクセス権限を調整したりするだけで済むようになります。

## まとめ

さくらのクラウドに追加された「ユーザグループ機能」を使ってみました。
アクセス権限をユーザに直接付与せず、グループを介して付与するのは、アクセス権限の管理におけるベストプラクティスの一つかと思います。
「ユーザグループ機能」を通して、よりアクセス権限が管理しやすくなると嬉しいです。

さくらのクラウドでは、まだまだアクセス権限の管理が便利になるよう鋭意開発中です。
さくらのクラウド自体の開発に興味が湧いた方は、こちらもチェックしてみてください。

https://www.sakura.ad.jp/recruit/

## おまけ

さくらのクラウドの「アクセス権限」に関する用語をまとめてみました。

| 概念 | 単位 | 説明 | 例 |
| :-- | :-- | :-- | :-- |
| 会員 | - | さくらインターネットが提供するサービスの会員で、さくらのクラウドでは特権管理者に相当します。	| さくらインターネット株式会社 |
| ユーザ | 会員単位 | さくらのクラウドのユーザーです。法人やチームにおける従業員やチームメンバーに相当します。 | 管理太郎、開発太郎 |
| アカウント | 会員単位 | 作業領域です。さくらのクラウド上に構築するサービスやシステムごとにアカウントを分けるごとで管理がしやすくなります。 | クラウドAPI開発チーム |
| アクセス権限 | アカウント単位 | ユーザやAPIが持つ、さくらのクラウドに対する権限です。アカウントごとに異なる権限を付与できます。 | 「請求閲覧」権限 |
| グループ | 会員単位 | 複数のユーザをまとめたものです。 | 「クラウドAPI開発チーム管理者」グループ |

より詳細な使い方は、さくらのクラウドのマニュアルをご参照ください。

https://manual.sakura.ad.jp/cloud/controlpanel/user-account.html

https://manual.sakura.ad.jp/cloud/controlpanel/user-group.html

https://manual.sakura.ad.jp/cloud/controlpanel/access-level.html