Project と権限
資源は Project の下に作ります。Project で製品を有効にし、作成できる数の上限を決め、作業する人に役割を付与してから資源を作ります。
Project を作る
Organization の owner が作成します。Console では Project の一覧から作成します。
acloud projects create PROJECT_ID --organization ORGANIZATION_ID --display-name "表示名"
acloud projects describe PROJECT_ID
acloud projects update PROJECT_ID --display-name "新しい表示名"
- Project ID は後から変更できません。削除した後も同じ ID は使えません。
- 削除を申請できるのは、資源も未完了の Operation も無い Project だけです。申請から 30 日以内なら復元できます。
acloud projects delete PROJECT_ID
acloud projects restore PROJECT_ID
製品を有効にする
新しい Project では、どの製品も有効になっていません。Project の Owner が、使う製品を理由とともに有効にします。製品は database、server(WordPress)、load-balancer の 3 つです。
acloud services list --project PROJECT_ID
acloud services enable server --project PROJECT_ID --reason "社内ブログの作成"
有効にしても資源は作られず、上限も役割も変わりません。資源が残っている製品は無効にできません。
作成できる数の上限を決める
上限が未設定(UNSET)の間と 0 の間は、作成が拒否されます。Project の Owner が Console の「割り当て」か CLI で設定します。
| 上限の ID | 対象 |
|---|---|
server.wordpressApplications | WordPress Application |
database.databases | Database |
loadBalancer.loadBalancers | 論理 Load Balancer |
acloud quotas list --project PROJECT_ID
acloud quotas update server.wordpressApplications --project PROJECT_ID --limit 2 --reason "社内ブログ 2 件"
上限を下げても、既にある資源は残ります。WordPress の作成には、このほかに運用者による配置の承認が必要です。
役割を付与する
Owner の役割(roles/platform.owner)は Project の設定と権限を管理するためのもので、資源の作成や接続はできません。作業する人には、製品ごとの役割を付与します。
| したいこと | 役割 |
|---|---|
| WordPress を作成する | roles/application.creator |
| WordPress を公開する、アクセス制限を変える | roles/application.publisher(Edge Service の役割も別に必要) |
| WordPress の初期設定画面を開く | roles/application.setupAdmin |
| WordPress を削除・復元する | roles/application.lifecycleOperator |
| Database を作成する | roles/database.creator |
| Database に接続する | roles/database.connector |
| Database の設定変更・削除 | roles/database.operator |
| 論理 Load Balancer を作成する | roles/loadBalancer.creator |
| 論理 Load Balancer の変更・削除 | roles/loadBalancer.operator |
| Edge Service を作成する | roles/edge.creator |
| Edge Service の Host や設定を変える | roles/edge.operator |
このほかに閲覧だけの役割(roles/application.viewer、roles/database.viewer、roles/loadBalancer.viewer など)があります。付与できる役割は Console の IAM 画面に表示されます。
Console で付与する
Organization、Project、または資源の詳細から IAM 画面を開き、member と役割を追加します。
CLI で付与する
現在の policy を読み、ファイルを編集して置き換えます。member は issuer と subject で指定します。相手の値は、本人が acloud auth status で確認できます。
acloud iam get-policy projects/PROJECT_ID --format json > policy.json
# policy.json の bindings に member と role を追加する
acloud iam set-policy projects/PROJECT_ID policy.json
- 読んだ後に誰かが policy を変更していた場合、
set-policyは何も変えずに終わります。読み直してから編集します。 - 付与できる相手は、同じ Organization の中で既に何かの役割を持つアカウントだけです。外部の人は先に招待します。
- 資源に付与する場合は
projects/PROJECT_ID/applications/APPLICATION、projects/PROJECT_ID/databases/DATABASE、projects/PROJECT_ID/loadBalancers/LOAD_BALANCERを指定します。
Organization に招待する
Organization の owner が招待リンクを発行します。メールは送られないため、表示されたリンクを相手に直接渡します。リンクは 7 日間、1 回だけ有効で、相手は Console で承諾します。
acloud invitations create person@example.com --organization ORGANIZATION_ID --role roles/platform.viewer
acloud invitations list --organization ORGANIZATION_ID
acloud invitations revoke INVITATION_ID --organization ORGANIZATION_ID
リンクは発行時に一度だけ表示されます。CLI のログインでは承諾できません。