アクセス・グループの動的ルールの作成
動的ルールを作成して、特定の ID 属性に基づいてフェデレーテッド・ユーザーをアクセス・グループに自動的に追加することができます。 ユーザーがフェデレーテッド ID を使用してログインすると、ID プロバイダー (IdP) からのデータは、設定されたルールに基づいてユーザーをアクセス・グループに動的にマップします。
ユーザーは、会社のドメイン内に特定の ID 情報を既に持っており、フェデレーテッド ID を使用してログインすると、SAML アサーションを使用してこのデータを渡すことができます。 IdP 内で構成されている SAML アサーションまたは属性ステートメントは、各ルールの作成に使用されるデータを提供します。 例えば、ユーザーを管理者として定義する、true または false の属性ステートメントがあるといった場合が考えられます。 この情報を使用して、IBM Cloud® アカウントで作成した管理者の特定のアクセス・グループに、管理者であるすべてのユーザーを追加できます。 詳細については、 クラウドリソースへのアクセス制御方法と ルールの例 に関するチュートリアルをご覧ください。
動的ルールを使用してアクセス・グループにマップすることができるのは、アカウントに既に招待されているユーザーのみです。
コンソールを使用したルールのセットアップ
動的ルールは、IdP 内で構成され、ログイン時にユーザーのフェデレーテッド ID と共に渡されるデータに一致する必要がある条件を設定することによって作成されます。 ルールには複数の条件を追加できます。 ユーザーがアクセス・グループに追加されるためには、ルールに設定されているすべての条件を満たしている必要があります。
ルールを作成するには、以下の手順を実行します。
- IBM Cloud コンソールで、「管理」 > **「アクセス (IAM)」をクリックし、「アクセス・グループ」**を選択します。
- ルールを作成する対象のアクセス・グループの名前を選択します。 このアクションにより、グループの**「詳細」**ページが開きます。
- **「動的ルール」**を選択します。
- **「ルールの追加」**をクリックします。
- 「ルールの追加」ページで動的に提供される IdP からの情報を入力します。 次のリストは、各必須フィールドの詳細を示しています。
アクセス・グループ・ルールは、キーと値のペアと考えることができます。 キーは、Add users when
フィールドに追加するものであり、値は Values
フィールドに入力するものです。
動的ルールの作成に使用されるフィールドについて詳しくは、IAM 条件プロパティーを参照してください。
Terraform を使用したルールの設定
Terraform を使用してルールをセットアップする前に、以下を完了していることを確認してください。
- Terraform CLI をインストールし、Terraform 用の IBM Cloud プロバイダー・プラグインを構成します。 詳しくは、 IBM Cloud® のチュートリアルを参照してください。 このプラグインは、以下のタスクを実行するために使用される IBM Cloud API を抽象化します。
main.tf
という名前の Terraform 構成ファイルを作成します。 このファイルでは、 HashiCorp 構成言語を使用してリソースを定義します。 詳細については 、Terraformのドキュメントを参照してください。
動的ルールは、IdP 内で構成され、ログイン時にユーザーのフェデレーテッド ID と共に渡されるデータに一致する必要がある条件を設定することによって作成されます。 ルールには複数の条件を追加できます。 ユーザーがアクセス・グループに追加されるためには、ルールに設定されているすべての条件を満たしている必要があります。
Terraform を使用してルールを作成するには、以下の手順を実行します。
-
main.tf
ファイルに引数を作成します。ibm_iam_access_group_dynamic_rule
リソースを使用してアクセス・グループの新規動的ルールを作成する例を以下に示します。ここで、name
は、動的ルールを識別するための固有の名前です。resource "ibm_iam_access_group_dynamic_rule" "rule1" { name = "newrule" access_group_id = "AccessGroupId-dsnd4bvsaf" expiration = 4 identity_provider = "test-idp.com" conditions { claim = "blueGroups" operator = "CONTAINS" value = "\"test-bluegroup-saml\"" } }
詳しくは、Terraform 資料ページにある引数についてのリファレンスの詳細を参照してください。
-
構成ファイルの作成が完了したら、Terraform CLI を初期化します。 詳しくは、 作業ディレクトリーの初期化を参照してください。
terraform init
-
main.tf
ファイルからリソースをプロビジョンします。 詳しくは、 Terraform を使用したインフラストラクチャーのプロビジョニングを参照してください。-
terraform plan
を実行して、提案されたアクションをプレビューするための Terraform 実行プランを生成します。terraform plan
-
terraform apply
を実行して、計画に定義されているリソースを作成します。terraform apply
-
動的ルールの作成に使用されるフィールドについて詳しくは、IAM 条件プロパティーを参照してください。
アクセス・グループの動的メンバーの表示
動的ルールを使用してアクセス・グループに追加されたユーザーを表示できます。 アクセス・グループの動的メンバーを表示するには、IBM Cloud コンソールで**「管理」>「アクセス (IAM)」>「アクセス・グループ」に移動します。 アクセス・グループを選択して、「ユーザー」**をクリックします。 動的に追加されたユーザーは、Dynamic
タイプで示されます。
以下のユーザーは表に表示されません。
- 動的に追加されたが、まだログインしていないユーザー
- 動的に追加されたが、セッションの有効期限が切れたユーザー
ログアウトしたが、セッションがまだ有効である動的ユーザーは、セッションの有効期限が切れるまでテーブルに表示され続けます。
動的ユーザーを手動で削除することはできません。 動的ユーザーを削除するには、動的ルールを調整します。
ユーザーの動的メンバーシップの表示
以下のステップを実行して、動的ルールに基づいてユーザーが追加されたアクセス・グループのリストを表示することもできます。
- IBM Cloud コンソールで管理 > アクセス (IAM) > ユーザーに移動します。
- ユーザーをクリックします。
- 「アクセス」 をクリックします。
- ユーザーが動的メンバーであるアクセス・グループは、タイプ
Dynamic
で示されます。
ルールの例
以下の例には、動的ルールの各フィールドの値が含まれています。 このルールでは、フェデレーテッド IdP 内の管理者として識別されるユーザーは、管理者のみに与えられる特定のアクセス権限セットを持つ IBM Cloud アクセス・グループにマップされます。
フィールド | 値 |
---|---|
名前 | 管理者グループのルール |
ID プロバイダー | https://idp.example.org/SAML2 |
有効期限 (時間) | 12 |
ユーザーを追加する条件 (属性名) | isManager |
コンパレーター | 等しい |
値 | はい |