アクセス・グループの動的ルールの作成
動的ルールを作成して、特定の 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 Providerプラグインを設定する。 詳しくは、 でTerraformを始める IBM Cloud® のチュートリアルをご覧ください。 このプラグインは、以下のタスクを実行するために使用される IBM Cloud API を抽象化します。
main.tfという名前の Terraform 構成ファイルを作成します。 このファイルでは、 HashiCorp Configuration Languageを使用してリソースを定義します。 詳しくは 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 資料ページにある引数についてのリファレンスの詳細を参照してください。
IAM Access Groupsモジュールで動的メンバーシップを自動化し、連携ユーザー管理を実現します。 Terraform IBM モジュールについて 学ぶ。
次の例は、Terraform IBM Modules (TIM) を使って、動的なルールを持つアクセスグループを作成する例です:
module "access_group" {
source = "terraform-ibm-modules/iam-access-group/ibm"
version = "X.X.X" # Replace with the latest version
access_group_name = "federated-managers"
access_group_description = "Access group for federated managers"
dynamic_rules = [
{
name = "manager-rule"
expiration = 12
identity_provider = "https://idp.example.org/SAML2"
conditions = [
{
claim = "isManager"
operator = "EQUALS"
value = "true"
}
]
}
]
}
その他の設定オプションと例については、 IAM Access Groupsモジュールのドキュメントを参照してください。
-
設定ファイルのビルドが終わったら、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 |
| コンパレーター | 等しい |
| 値 | はい |