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サービス」ロールが追加されていることを確認してください。