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 "新しい表示名"
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.wordpressApplicationsWordPress Application
database.databasesDatabase
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

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 のログインでは承諾できません。