目的
前回の記事「App IDのユーザーでIBM Cloudのポータルを利用する」では、App IDのクラウドディレクトリーに登録したユーザーで、IBM Cloudのポータルにログインできることを検証しました。しかし、ユーザーはクラウドアカウントに対して何の権限も持っていませんでした。今回は、同ユーザーにIAMのアクセスグループがもつ動的ルール機能をつかって、権限を自動的に付与してみます。
手順
前回記事の設定は完了しているものとします。
レルムIDの確認
IDプロバイダーであるApp IDのレルムIDを確認します。IAMの画面から確認できます。この画像ではぼかしていますが、この値を控えておきます。
動的ルールの作成
IAMでアクセスグループを作り、必要なポリシーを付与します。次に、動的ルールタブで、IDプロバイダからもらうカスタムプロパティがどのような値だったらこのアクセスグループの権限をユーザーに適用するかを指定します。
この例では、アクセスグループにはあらかじめteruzリソースグループに対する管理者権限を割り当てています。IDプロバイダー欄はappid://${先ほどのレルムID}
を指定します。ユーザーを追加する条件欄は、App IDユーザーに付与するカスタムプロパティ名を指定します。ここではresource-groupとしています。値欄はteruzとしています。
App IDのユーザーにカスタム属性を追加
次にApp IDでユーザーにカスタム属性を付与します。先ほどの動的ルールの条件に合わせて、
{ "resource-group": "teruz" }
とします。
ポータルにログイン
設定は以上です。このユーザーでポータルにログインします。ログイン方法は前回の記事を参照してください。次のようにリソースが見えるようになりました。なお、動的ルールを設定してから有効になるまで少し時間差があるようです。もし何も見えなかったら時間をおいてリロードしてみてください。
考慮点
- 動的ルールを使う場合、ユーザーがどのアクセスグループに属するか、どのようなポリシーを持つかを直接確認することはできません(IAMの画面を見ても表示されません)ので、わかりづらいです
- App IDのカスタムプロパティはユーザーやプロパティが増えると編集が面倒なので、もし実運用で使うならばユーザー管理をするカスタムアプリを作るとよいでしょう