IAM Conditions を使用すると、Apigee Integration リソースなどの Google Cloud リソースに条件付きの属性ベースのアクセス制御を定義して適用できます。IAM Conditions の詳細については、IAM Conditions の概要をご覧ください。
Apigee Integration では、次の属性に基づいて条件付きアクセスを適用できます。
- 日時属性: Apigee Integration リソースに対する一時的な(有効期限のある)アクセス権、スケジュールに基づくアクセス権、または期間限定のアクセス権を設定するために使用します。たとえば、指定した日付までユーザーが Integration にアクセスできるようにすることができます。詳細については、一時アクセスの構成をご覧ください。
- リソース属性: リソース名、リソースタイプ、リソース サービス属性に基づいて条件付きアクセスを構成するために使用します。たとえば、特定のリージョンで作成された Integration をユーザーが管理できるようにすることが可能です。 サポートされている値の一覧の詳細については、リソースベースのアクセスの構成をご覧ください。
IAM の条件を追加
IAM 条件を既存のプリンシパル(ユーザー、グループ、またはサービス アカウント)に追加するには、次の手順を行います。
- Google Cloud コンソールの [IAM] ページに移動します。
IAM に移動します。
- プロジェクト、フォルダ、または組織を選択します。
- プリンシパルのリストから、IAM 条件を追加するプリンシパルを見つけて、[
[アクセス権の編集] ペインが表示されます。
(プリンシパルの編集)] をクリックします。 - IAM 条件を追加するロールを見つけ、[+ IAM 条件を追加] をクリックします。
- [条件の追加] ペインで、次の情報を入力します。
- タイトル: ロールに追加する条件の名前を入力します。
- 説明: (省略可)条件の説明を入力します。
- 条件ビルダーまたは条件エディタを使用して条件式を追加できます。
条件ビルダーには、目的の条件タイプ、演算子、その他の式に関する適用可能な詳細を選択するインタラクティブなインターフェースが用意されています。条件エディタには、CEL 構文を使用して条件式を手動で入力するテキストベースのインターフェースが用意されています。
条件ビルダーまたは条件エディタの使用方法の詳細については、リソースベースのアクセスを構成するをご覧ください。
- [保存] をクリックして条件を適用します。
Apigee Integration でサポートされているリソース属性については、リソース属性値をご覧ください。
- プリンシパルを更新するには、[アクセス権の編集] ペインからもう一度 [保存] をクリックします。
リソースの属性値
次のテーブルに、Apigee Integration のリソースタイプ属性に含めることができる値を示します。
リソース名 | リソースの種類 | 参照 |
---|---|---|
Location | SERVICE_ENDPOINT-integrations.googleapis.com/Location
|
API リファレンス |
Integration | SERVICE_ENDPOINT-integrations.googleapis.com/Integration
|
API リファレンス |
IntegrationVersion | SERVICE_ENDPOINT-integrations.googleapis.com/IntegrationVersion
|
API リファレンス |
Execution | SERVICE_ENDPOINT-integrations.googleapis.com/Execution
|
API リファレンス |
Suspension | SERVICE_ENDPOINT-integrations.googleapis.com/Suspension
|
API リファレンス |
AuthConfig | SERVICE_ENDPOINT-integrations.googleapis.com/AuthConfig
|
API リファレンス |
Apigee Integration に IAM Condtions を使用する例
例 1: リージョン内の任意の IntegrationVersion リソースへのアクセスを制限する
条件エディタで次の条件式を使用して、IntegrationVersion リソースへのアクセスを制限できます。アクセスの制限には、リージョン内の Integration のバージョンに対する、create
、delete
、download
、get
、list
、patch
、publish
、unpublish
、upload
オペレーションの制限が含まれます。
!resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/products/apigee/integrations/INTEGRATION_NAME")
次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクトの ID。
- LOCATION: Integration サービス エンドポイント。Apigee Integration サービス エンドポイントをご覧ください。
- INTEGRATION_NAME: Integration の名前。
例 2: リージョン内の任意の IntegrationVersion リソースへのアクセスを許可する
条件エディタで次の条件式を使用して、IntegrationVersion リソースへのアクセスを許可できます。
resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/products/apigee/integrations/INTEGRATION_NAME") || resource.type == "cloudresourcemanager.googleapis.com/Project")
次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクトの ID。
- LOCATION: Integration サービス エンドポイント。Apigee Integration サービス エンドポイントをご覧ください。
- INTEGRATION_NAME: Integration の名前。
例 3: 特定の AuthConfig リソースへのアクセスを許可する
特定の AuthConfig リソースへのアクセスを許可するには、条件エディタで次の条件式を使用します。
(resource.name.extract("authConfigs/{end}" == "AUTH_CONFIG_NAME") || resource.type == "integrations.googleapis.com/Location" || resource.type == "cloudresourcemanager.googleapis.com/Project")
次のように置き換えます。
- AUTH_CONFIG_NAME: 認証タイプの名前。認証タイプをご覧ください。
例 4: リージョン内の任意の AuthConfig リソースへのアクセスを許可する
条件エディタで次の条件式を使用して、任意の AuthConfig リソースへのアクセスを許可できます。
(resource.name.startsWith("projects/PROJECT_ID/locations/LOCATION/products/apigee") && resource.type == "integrations.googleapis.com/AuthConfig" || resource.type == "integrations.googleapis.com/Location" || resource.type == "cloudresourcemanager.googleapis.com/Project")
次のように置き換えます。
- PROJECT_ID: Google Cloud プロジェクトの ID。
- LOCATION: Integration サービス エンドポイント。Apigee Integration サービス エンドポイントをご覧ください。