Add-onを利用するための権限を付与する

[更新:2026年07月30日]

権限付与の手順について

1. IAMポリシー更新APIを実行するサービスプリンシパルの準備

「Add-onサービス」ロールはクラウドホームから直接付与できません。
IAMポリシー更新用APIを利用して付与する必要があるため、IAMポリシー更新用APIを実行するサービスプリンシパルを準備します。

サービスプリンシパルがプロジェクトの IAM ポリシーを参照・更新できるよう、会員またはユーザがクラウドホームから対象のサービスプリンシパルへ「オーナー」ロールを付与してください。

ロール付与の手順は、 こちら をご参照ください。

2. サービスプリンシパルに「Add-onサービス」ロールを付与する

1.で準備したサービスプリンシパルを使用して、API から対象のサービスプリンシパルへ「Add-onサービス」ロールを付与します。
なお、1.で使用するサービスプリンシパルと、「Add-onサービス」ロールを付与するサービスプリンシパルは同一である必要はありません。

サービスプリンシパルのアクセストークンを発行する方法は こちら をご参照ください。

現在のプロジェクトIAMポリシーを取得する

TOKEN='<サービスプリンシパルのアクセストークン>'
PROJECT_ID='<対象のプロジェクトID>'

#GET
curl -v \
  --location "https://secure.sakura.ad.jp/cloud/api/iam/1.0/projects/$PROJECT_ID/iam-policy" \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header "Authorization: Bearer $TOKEN"

結果のデータをjsonファイルなどに控えてください。

{
    "bindings": [
      {
         "role": {
            "type": "preset",
            "id": "resouce-creator"
         },
         "principals": [
            {
               "type": "user",
               "id": 123456789123
            }
         ]
      }
   ]
}

現在のプロジェクトIAMポリシーを更新する

注意

IAMポリシー更新APIは部分更新ではなく、送信した内容で既存のポリシー全体を置換します。 既存のポリシーを取得せずに追加分のみを送信すると、既存の権限設定が削除されます。 更新する場合は、取得したポリシーに変更を加えたうえでポリシー全体を送信してください。

先ほど控えたレスポンスデータをテキストエディタで編集します。以下を参考に編集してください。
Add-onサービスを利用するサービスプリンシパルのリソースIDを確認する際は、サービスプリンシパルの一覧ページから該当のサービスプリンシパルの詳細画面をご確認ください。

{
   "bindings": [
      {
         "role": {
            "type": "preset",
            "id": "resouce-creator"
          },
          "principals": [
             {
               "type": "user",
               "id": 123456789123
             }
          ]
      },
      # 以下の要素を新しく追加する
      {
         "role": {
            "type": "preset",
            "id": "addon-admin"
         },
         "principals": [
            {
               "type": "service-principal",
               "id": ${Add-onサービスを利用するサービスプリンシパルのリソースID}
            }
         ]
      }
   ]
}

先ほど編集したファイル(ここでは data.json にデータが保存されているものとします)があるディレクトリで、以下のコマンドを実行します。

TOKEN='<サービスプリンシパルのアクセストークン>'
PROJECT_ID='<対象のプロジェクトID>'

#PUT
curl -X PUT -v \
   --location "https://secure.sakura.ad.jp/cloud/api/iam/1.0/projects/$PROJECT_ID/iam-policy" \
   --header 'Content-Type: application/json' \
   --header 'Accept: application/json' \
   --header "Authorization: Bearer $TOKEN" \
   --data @data.json

更新後は再度IAMポリシー取得APIを実行し、「Add-onサービス」ロールが追加されていることを確認してください。