コンテキスト・ベースの制限によるレイヤード・セキュリティ
コンテキストベースの制限で攻撃対象領域を減らす。 ネットワークの場所、エンドポイントの種類、MFA要件をIDベースのポリシーに追加して、きめ細かなアクセス管理を実現します。
コンテキストベースの制限により、 アカウント所有者と管理者は、ルールの基準に基づいて、 IBM Cloud® リソースへのアクセス制限を定義し、実施することができます。 基準には、アクセス要求のネットワークロケーション、要求が送信されるエンドポイントタイプ、IDの多要素認証レベル、および場合によっては要求がアクセスしようとするAPIが含まれる。 これらの制限は、IDに基づく従来のIAMポリシーと連動し、もう1つの保護レイヤーを提供する。 IAM ポリシーとコンテキストベースの制限の両方がアクセスを強制するため、コンテキストベースの制限は、漏洩した、または誤管理された認証情報に直面しても保護を提供する。
コンテキスト・ベースの制限を作成するシナリオの例については、コンテキスト・ベースの制限を活用したリソースの保護のチュートリアルを参照してください。
セキュリティ戦略におけるコンテキストベースの制限の実装の詳細については、ソリューション・チュートリアル コンテキストベースの制限を適用してクラウドセキュリティを強化するを 参照してください。
ルール
ルールは、 IBM Cloud リソースをコンテキストのセットに関連付ける:
- クラウド・リソースは、IAM アクセス・ポリシーと類似したリソース属性によって指定されます。
- コンテキストとは、ネットワーク・ゾーンとエンドポイント・タイプの組み合わせです。
設定したコンテキストは、関連するリソースの境界を定義する。
コンテキストベースの制限ルールで必要なリソース属性は accountId と serviceName である。 ルールの有効範囲として、アカウントと特定のサービスを設定する必要があります。
コンテキスト・ベースの制限のルールは以下のロジックによって適用されます。
- ルールによってアクセス権限が付与されるのは、少なくとも 1 つのルールのコンテキストがアクセスを許可している場合に限られます。
- 特定のリソースに対して複数のルールが適用可能である場合、アクセス権限が付与されるのは、適用可能なすべてのルールがアクセスを許可している場合に限られます。
- 特定のリソースに適用できるルールがない場合、アクセス権限は IAM ポリシーのみによって決まります。
IAM ポリシーとは異なり、コンテキスト・ベースの制限はアクセス権限を割り当てません。 コンテキスト・ベースの制限は、アクセス要求が、構成された許可されるコンテキストからのものであるかどうかを検査します。
コンソール、CLI、APIなど、リソースにアクセスするために使用するインターフェイスは、ルールがそのリソースに適用される方法に影響しません。 このルールは、すべてのインターフェイスで同じように適用され、クライアントのIPアドレスに基づいている。
規則施行
ルール作成時にルールの適用方法を決定し、いつでもルールの適用方法を更新できる。
- 有効
- ルールを実施する。 選択したサービスによっては、 Activity Tracker Event Routing、拒否されたアクセス試行を監視することができる。 各サービスのドキュメントを確認し、コンテキストベースの制限との統合方法について学んでください。
- 無効
- アカウントリソースに制限はありません。 ルールを有効にする準備ができていない場合は、このオプションを選択する。
- レポートのみ
- 選択したサービスによっては、ルールを強制しなくても、ルールがアクセスにどのように影響するかを監視できる。 レポート専用モードでは、 アカウント内のリソースへのアクセスはすべて Activity Tracker Event Routing に記録されます。 もし可能であれば、規則を施行する前に30日間モニタリングすることを推奨する。
レポート専用モードはすべてのサービスで利用できるわけではないので、コンテキスト・ベースの制限との統合方法については、各サービスのドキュメントを確認してください。
有効化されたルールとレポート専用ルールの影響を監視できます。 詳細については、 コンテキスト・ベースの制限の監視を 参照のこと。
ルールの範囲の定義
ルールの制限範囲を狭めるために、保護したいAPIを定義する。 こうすることで、アクセス要件が異なるAPIに対して、きめ細かな保護を指定することができる。
例えば、データプレーンAPIをターゲットにしたルールを作成し、 Kubernetes クラスタからのみアクセスできるようにしたり、コンピュートインフラストラクチャが存在する場所であればどこからでもアクセスできるようにすることができる。 そして、コントロール・プレーンAPIとすべてのプラットフォームAPIをターゲットにしたルールを作成し、クラウド・コンソールとのやり取りを保護することで、組織のVPNの後ろからのみアクセスできるようにすることができる。
APIによってルールをスコープする機能をサポートしているのは、一部のサービスだけである。
サービスによっては、デフォルトでリソースに対するすべてのサービスAPIのアクションを制限することができます。 または、特定のAPIを選択する。 例えば Kubernetes にはカスタムサービスAPIがあり、リクエストのコンテキストに基づいてアクセスを制限することができます。 各サービスがどのようにコンテキスト・ベースの制限と統合されるかについては、各サービスのドキュメントを参照してください。
一部のサービスでは、全プラットフォームAPIを保護するルールをスコープする機能をサポートしている。 ルールのスコープにプラットフォームAPIを追加することで、リソースのプロビジョニング、サービス・クレデンシャルの管理、タグのアタッチなどのプラットフォーム操作は、定義した場所からのみアクセスできるようになる。
コンテキストベースの制限のデフォルトは、ターゲットサービスがサポートするすべてのサービスとプラットフォームAPIを保護する。
コンテキスト
コンテキストは、リソースにアクセスできる場所を定義します。 コンテキストは、構成される許可されるエンドポイント・タイプとネットワーク・ゾーンからなります。
- コンテキストにネットワーク・ゾーンが含まれる場合、それらのいずれかのゾーン内から要求が作成された場合にのみ、アクセス権限が付与されます。
- コンテキストにサービス・エンドポイント・タイプが含まれる場合、それらのいずれかのタイプと一致する接続を介して要求が受信された場合にのみ、アクセス権限が付与されます。
- コンテキストに多要素認証(MFA)が含まれている場合は、要求している ID が要求された MFA レベルと同じかそれ以上の MFA レベルを持つ場合にのみアクセスが許可される。
- コンテキストに複数の制限 (ゾーンとエンドポイント・タイプの両方など) が含まれている場合、アクセス権限が付与されるためには、すべての制限が満たされる必要があります。
ネットワーク・ゾーン
ネットワーク・ゾーンとは、アクセス要求が作成される場所の IP アドレスの許可リストを表します。 これは、以下の属性によって指定される 1 つ以上のネットワーク・ロケーションの集合を定義します。
- IP アドレス。これには、個々のアドレス、アドレス範囲、サブネットが含まれます。
- VPC
- サービス参照。これは、他の IBM Cloud® サービスからのアクセスを許可します。
IP アドレス
顧客は、トラフィックの送信元にできるようにする、既知の IP アドレスを指定できます。 指定された IP アドレス以外のものはすべて拒否されます。
VPC
コンテキスト・ベースの制限が課されたリソースにアクセスする必要がある VPC 内にデプロイされたアプリがある場合は、その VPC の IP アドレスをネットワーク・ゾーンに含めることができます。 そのためには、ネットワーク・ゾーンでターゲットVPCを選択し、そのネットワーク・ゾーンをルールに追加します。 こうすれば、VPCが使用するIPアドレスを見つける必要はない。 アクセスを受けるリソースは、要求が、許可された IP アドレスの集合からのものであることを確認します。
サービス参照
サービス参照は、サービスまたはサービスインスタンスのネットワーク上の位置を表す。 ネットワークゾーンにサービス参照を含めると、サービスの基礎となるIPアドレスを知らなくても、サービスに関連するIPアドレスが許可リストに追加されます。 クラウド・サービスのネットワーク・ロケーションは、コンテキスト・ベースの制限管理者にとっては未知であり、時間の経過とともに変化する可能性があるため、サービス・リファレンスは有用である。
以下は、サービス参照としてネットワークゾーンに追加できるサービスのリストです: | サービス|サービスタイプ| service_name |---------------|--------------|----------------| アカウント マネジメント・サービス| アカウント マネジメント| iam-access-management | IAM アクセス・グループ・サービス| アカウント管理| iam-groups | | IAM ユーザー管理| アカウント管理| user-management | Activity Tracker Event Routing | IAM有効| logdnaat | | App Configuration | IAM有効| apprapp | | カタログ管理サービス|IAM対応| globalcatalog-collection | | クラウド Block Storage for VPC IAM対応 | クラウド Object Storage |IAM-enabled| cloud-object-storage | | Code Engine | IAM有効| codeengine | | Databases for DataStax | IAM有効| databases-for-cassandra | | Databases for EnterpriseDB | IAM有効| databases-for-enterprisedb | | Databases for Elasticsearch | IAM有効| databases-for-elasticsearch | | Databases for etcd | IAM有効| databases-for-etcd | | Databases for MongoDB | IAM有効| databases-for-mongodb | | Databases for MySQL | IAM有効| databases-for-mysql | | Databases for PostgreSQL | IAM有効| databases-for-postgresql | | Databases for Redis | IAM有効| databases-for-redis | | Direct Link |IAM-enabled| directlink | |
Event Notifications | IAM有効| event-notifications | | Event Streams | IAM有効| messagehub | | Kubernetes Service / Red Hat OpenShift | IAM有効| containers-kubernetes | | Messages for RabbitMQ | IAM有効| messages-for-rabbitmq | | Secrets Manager |IAM-enabled| secrets-manager | | VPCインフラサービス |IAM-enabled|||| | Schematics | IAM有効| schematics |
| ツールチェーン |IAM対応| toolchain | | Watsonx.data |IAM-enabled| lakehouse |
表1において、 アカウント マネジメント・サービス は、表に記載されているアカウント マネジメント・タイプのサービスのグループ化を指す。 例えば、表1に記載されている アカウント Managementサービスが2つある場合、 アカウント マネジメント・サービス 、その2つのサービスが含まれる。 サービス参照として利用できるアカウント管理サービスが増えると、 アカウント マネジメント・サービス をサービス参照として指定したネットワークゾーンには、新しく追加されたアカウント管理サービスが自動的に含まれるようになる。
ルールで対象とするサービス・オファーのサービス参照として追加するサービスの詳細については、各サービス・オファーのマニュアルを参照してください。
エンドポイント・タイプ
エンドポイント・タイプは、アクセス要求が受信される接続を表します。 これは、接続を受信するエンドポイントに対応します。 サービスでサポートされるすべてのエンドポイント・タイプからのアクセスか、特定のサービス・エンドポイント・タイプからのアクセスを許可することができます。
一般的な 3 つのエンドポイント・タイプは以下のとおりです。
- パブリック・エンドポイントは、どこからの要求でも受信できます。
- プライベート・エンドポイントは、 IBM Cloud® 内から発信されるほとんどのリクエストで利用可能です。
- ダイレクト・エンドポイントはBring-Your-Own-IPシナリオで使用され、一般にVPC内のリソースから発信されるリクエストに使用されます。
一部のエンドポイント・タイプは、選択したサービスでサポートされていない場合があります。
仮想プライベート・エンドポイントにアクセスするには、CLI ユーザーがコマンド ibmcloud login -a private.cloud.ibm.com --vpc を使用してログインする必要があります。詳細については、 プライベート・エンドポイント・ゲートウェイの作成(VPC の使用に必要 )を参照してください。
多要素認証
多要素認証(MFA)は、ID とパスワード以外の別の認証要素を使用して ID を認証することを要求する。 あまり厳しくない MFA レベル要件を設定することで、そのレベルを満たすか超えるユーザに認証を許可する。 例えば、ルールがユーザに MFA LEVEL1 での認証を要求している場合、 LEVEL2 が LEVEL1 のセキュリティ基準を超えているため、MFA LEVEL2 を持つユーザはコンプライアンスに準拠していることになる。 以下の MFA レベルは、各レベルの最小 MFA 係数を示している。 詳細については、 IBM Cloud 多要素認証を 参照してください。
- LEVEL1: 電子メールベースのMFA
- LEVEL2: TOTP MFA
- LEVEL3: セキュリティ・キー MFA
コンテキストベースの制限ルールは、 LEVEL1、 LEVEL2、 LEVEL3 MFAに加えて、 IAM_ACCOUNT_SETTING という値もサポートしています。これは、ルールのMFA値が、 アカウント MFA要件として定義したものと一致することを意味します。 こうすることで、 アカウント MFA設定を変更すると、そのルールが自動的に適用される。 詳細は MFA オプションを参照。
IAM 認証設定の MFA for users with an IBMid セクションでオプションが選択されている場合、IAM からの MFA 値は、コンテキストベースの制限の LEVEL2 MFA にマッピングされます。 MFA は、 非連帯ユーザが選択されていても、連帯ユーザと非連帯ユーザの両方に適用される。
ルールでMFAを指定できるのは、一部のサービスのみである。
アクセス要件
ルールアクションを完了するには、対象サービスのIAMポリシーが割り当てられている必要があります。 ネットワークゾーンのアクションを完了するには、コンテキストベースの制限サービスのIAMポリシーが割り当てられている必要があります。
サービスのコンテキストベースの制限を作成するには、ルールを作成するサービスの管理者ロールを持つIAMポリシーが割り当てられている必要があります。 例えば、インスタンスを保護するルールを作成する場合、そのインスタンスに管理者ロールが割り当てられている必要があります。 Key Protect インスタンスを保護するルールを作成する場合、そのサービスでは管理者ロールが割り当てられ Key Protect サービスではAdministrator ロール、コンテキストベースの制限サービスではViewer ロール以上が割り当てられている必要があります。
コンテキストベースの制限サービスのViewerロールは、ルールにネットワークゾーンを追加する権限を与える。
コンテキストに基づく制限の役割と行動
ネットワークゾーンを管理するには、コンテキストベースの制限アカウント管理サービスの特定のロールを持つIAMポリシーを割り当てる必要があります。 次の表は、 アカウント管理で可能なアクセス・ロールとアクションを示しています。
| 役割 | アクション |
|---|---|
| ビューアー | ネットワーク・ゾーンの表示 |
| エディター | ネットワーク・ゾーンの表示
ネットワーク・ゾーンの作成 ネットワーク・ゾーンの更新 ネットワーク・ゾーンの削除 |
| 管理者 | ネットワーク・ゾーンの表示
ネットワーク・ゾーンの作成 ネットワーク・ゾーンの更新 ネットワーク・ゾーンの削除 |
詳しくは、アカウント管理サービスのアクションおよび役割を参照してください。
ネットワーク・ゾーンを使用して、アカウント・レベルでアクセスを制限することもできます。 ネットワークゾーンを使用してアカウント制限を設定するには、 IBM Cloud コンソールで「 管理 」>「 IAM 」>「 設定 」と進み、ネットワークゾーンの名前を入力します。
対象サービスの役割と行動
ルールを管理するには、ルールを作成するサービスの管理者ロールを持つIAMポリシーが割り当てられている必要があります。 次の表は、サービスに対して可能なアクセス・ロールとアクションを示しています。
| 役割 | アクション |
|---|---|
| ビューアー | ルールを表示する |
| エディター | ルールを表示する |
| 管理者 | 「ルールの表示」
「ルールの作成」 「ルールの更新」 「ルールの削除」 |
コンテキスト・ベースの制限と統合されたサービス
特定の IBM Cloud サービスはコンテキストベースの制限と統合され、これらのサービスだけがリソースにルールを適用できる。 個々のサービスに対するルールの適用方法はサービスによって異なるため、各サービスのドキュメントを確認して、コンテキストベースの制限がどのように適用されるかを理解するようにしてください。
サービス上で適切なアクセス権が付与されていれば、以下のサービスに対してコンテキスト・ベースの制限を作成できます:
| サービス | サービス・タイプ | APIへのスコープ | service_name |
|---|---|---|---|
| Activity Tracker Event Routing | アカウント管理 | いいえ | atracker |
| App Configuration | IAM 対応 | いいえ | apprapp |
| カタログ管理サービス | IAM 対応 | ある | globalcatalog-collection |
| IBM Cloud Logs | IAM 対応 | いいえ | logs |
| IBM Cloud Monitoring | IAM 対応 | いいえ | sysdig-monitor |
| バックアップおよびリカバリー | IAM 対応 | ある | backup-recovery |
| クラウド Object Storage | IAM 対応 | いいえ | cloud-object-storage |
| Code Engine | IAM 対応 | いいえ | codeengine |
| Container Registry | IAM 対応 | いいえ | container-registry |
| コンテキスト・ベースの制限 サービス | アカウント管理 | いいえ | context-based-restrictions |
| Databases for DataStax | IAM 対応 | ある | databases-for-cassandra |
| Databases for EnterpriseDB | IAM 対応 | ある | databases-for-enterprisedb |
| Databases for Elasticsearch | IAM 対応 | ある | databases-for-elasticsearch |
| Databases for etcd | IAM 対応 | ある | databases-for-etcd |
| Databases for MongoDB | IAM 対応 | ある | databases-for-mongodb |
| Databases for MySQL | IAM 対応 | ある | databases-for-mysql |
| Databases for PostgreSQL | IAM 対応 | ある | databases-for-postgresql |
| Databases for Redis | IAM 対応 | ある | databases-for-redis |
| Direct Link | IAM 対応 | いいえ | directlink |
| DNS Services | IAM 対応 | いいえ | dns-svcs |
| Enterprise Application Service | IAM 対応 | いいえ | enterprise-app-java |
| Event Notifications | IAM 対応 | いいえ | event-notifications |
| Event Streams | IAM 対応 | いいえ | messagehub |
| Hyper Protect Crypto Services | IAM 対応 | ある | hs-crypto |
| IAM アクセス・グループ・サービス | アカウント管理 | いいえ | iam-groups |
| IAM アクセス管理サービス | アカウント管理 | いいえ | iam-access-management |
| IAM Identity Service | アカウント管理 | いいえ | iam-identity |
| IAMユーザー管理 | アカウント管理 | いいえ | user-management |
| IBM Cloud® Virtual Private Cloud | IAM 対応 | いいえ | is |
| Key Protect | IAM 対応 | いいえ | kms |
| Kubernetes Service / Red Hat OpenShift | IAM 対応 | ある | containers-kubernetes |
| MQ | IAM 対応 | ある | mqcloud |
| Messages for RabbitMQ | IAM 対応 | ある | messages-for-rabbitmq |
| Schematics | IAM 対応 | いいえ | schematics |
| Secrets Manager | IAM 対応 | いいえ | secrets-manager |
| IBM Cloud Security and Compliance Center Workload Protection | IAM 対応 | いいえ | sysdig-secure |
| タグ付けサービス | アカウント管理 | いいえ | ghost-tags |
| Transit Gateway | IAM 対応 | いいえ | transit |
| Watsonx.data | IAM 対応 | いいえ | lakehouse |
IAM対応サービスに定義されているコンテキストベースの制限は、作成や削除のようなプラットフォームのアクションには適用されない。 詳しくは、IAM の役割とアクションを参照してください。
より多くのサービスがコンテキスト・ベースの制限と統合されるにつれて、どのようなサービスが追加されるか、定期的にチェックしてください。
コンテキスト・ベースの制限
以下の表に、コンテキスト・ベースの制限の最大制限をリストします。 これらの制限は、コンテキスト・ベースの制限ルールまたはネットワーク・ゾーンを作成できるすべてのユーザーに適用されます。 詳しくは、コンテキスト・ベースの制限とは何ですか?を参照してください。
拡張された制限を必要とする特定のユース・ケースがある場合は、増加を要求できます。 詳しくは、アカウント制限の増加を参照してください。
| リソース | 最大 |
|---|---|
| アカウント当たりのコンテキスト・ベースの制限ルール [1] | 4020 |
| アカウント当たりのネットワーク・ゾーン | 500 |
| ネットワーク・ゾーンごとの IP アドレス | 1000 |
| 規則ごとの IP アドレス | 1000 |
複数のネットワーク・ゾーンを含むコンテキスト・ベースの制限ルールには、最大 1000 個の IP アドレスを間接的に関連付けることができます。 例えば、2つのネットワークゾーンを含むルールでは、一方のゾーンには800個のIPアドレスがあり、もう一方には最大200個のIPアドレスがあるかもしれない。
アカウントルール数を確認したい場合は、 アカウントごとのルール総数の表示 を参照してください。 アカウント限度額の増額を申請するには、「 ポリシーとルールの共有限度額の増額を申請する 」を参照してください。
結果整合性
コンテキストベースの制限は、多くのクラウドネイティブサービスに共通する、 最終的に一貫したパターンに従う。 その結果、コンテキスト・ベースの制限は、複数のグローバル・リージョンにわたって高可用性とパフォーマンスを維持します。 コンテキスト・ベースの制限ルールおよびネットワーク・ゾーンに対して行われた変更は、記録され、世界中に伝搬されます。 アクセス権限の変更は、伝搬プロセスが完了するまで (通常は数分以内) 有効にならない可能性があります。
-
IAMポリシーとコンテキストベースの制限ルールは、合わせて4020の制限を共有する。 ↩︎