IAM アクセスの概念
アクセス管理の概念は、ユーザーがアカウント内のリソースに対してアクションを実行できるようにする、相互に関連したいくつかの要素 (ユーザー、サービス ID、アクセス・グループ、トラステッド・プロファイル、リソース、ポリシー、役割、アクション、IBM Cloud IAM 制御システムなど) から構成されます。
IBM Cloud IAMは、多くのクラウドネイティブなサービスに共通する、 最終的に一貫するパターンに従っています。 その結果、IAM は複数のグローバル・リージョンにわたって高可用性とパフォーマンスを維持できます。 IAM アクセス・ポリシー、許可、サービス ID、API キー、アクセス・グループ、トラステッド・プロファイル、リソース・グループ、ユーザー、または他のアクセス制御に加えられた変更は、全世界のすべての IAM コンポーネントおよび IAM 対応サービスにわたって記録および伝搬されます。 伝搬プロセスが完了するまでアクセス権限の変更が有効にならないことがあります。
アクセス・グループ
ユーザーとサービス ID のグループを編成すると、1 つ以上のポリシーを使用してグループ内のすべてのメンバーに同じアクセス権限を割り当てることができます。 アクセスグループを使用すると、アクセス割り当てプロセスを合理化できるため、管理するポリシーの数を減らし、アカウント内のポリシーの数を減らすことができます。その結果、パフォーマンスが向上します。 アクセス・グループを使用すると、ユーザーまたはサービス ID をアクセス・グループに追加したりアクセス・グループから除外したりするだけで、アクセス権限の付与と取り消しを行うことができます。 グループをセットアップした後、ポリシーのサブジェクトとしてアクセス・グループを選択することから、ポリシーの割り当てを開始できます。 詳しくは、アクセス・グループでアクセス管理を合理化を参照してください。
トラステッド・プロファイル
トラステッド・プロファイルを使用する場合は、ユーザーの ID の管理は、お客様自身の企業ディレクトリーで行います。 また、IBM Cloud の複数のアカウントと資産にまたがって、フェデレーテッド・ユーザーのアクセス権限のライフサイクルを一元的に管理できます。アカウントごとに各エンティティーについてアクセス・ポリシーを構成する必要がありません。 ユーザーをアカウントに招待して IBM Cloud リソースに対するアクセス権限を付与する必要はありません。
アプリケーション用にサービス ID を作成したり API キーのライフサイクルを管理したりすることなく、コンピュート・リソースで実行されるすべてのアプリケーションのための権限をきめ細かく定義することもできます。 組織のトラステッド・プロファイルの作成を開始するには、資格情報の管理が不要になるトラステッド・プロファイルを参照してください。
リソース
アカウントリソースとは、カタログから選択されたサービスインスタンス、またはサービスインスタンス内のより細かい粒度のリソース( IBM Cloud® Object Storage バケットなど)を指します。 IAM 対応のリソースは、カタログから作成されるときにリソース・グループに追加されます。
IAM アクセス管理により、アクセスをきめ細かく制御できます。つまり、ポリシーは、例えば 1 つのリソース・グループ内のすべてのリソースに対して広範囲に設定することも、アカウント内の特定のサービス・インスタンスや、特定のインスタンス内のリソース・タイプ (IBM Cloud Object Storage バケットなど) に対して設定することもできます。
アクセス・ポリシー
アクセス・ポリシーとは、アカウント内のユーザー、サービス ID、アクセス・グループ、トラステッド・プロファイルに、アカウント・リソースに対するアクセスとアクションの実行を許可する方法です。 ポリシーには、サブジェクト、ターゲット、役割が含まれます。 サブジェクトとは、アクセス権限を提供する対象のユーザー、サービス ID、またはアクセス・グループです。 ポリシーのターゲットとは、権限を付与するアクセス対象リソースです。 また、IAM 役割により、ポリシーのターゲットに対するアクセス・レベルや許可アクションを定義します。
ポリシーは、アクセスのレベルを定義する 1 つ以上の役割と、アクセスを許可するターゲットを定義する 1 つ以上の属性をサブジェクトに割り当てます。 ポリシーは、インスタンス・レベルの単一のサービス、リソース・グループに編成されたリソースのセット、または属性のセット (ロケーション、リソース・タイプなど) で定義できるリソースのセットへのアクセス権限を付与できます。 ポリシーはさらに、アカウント管理サービスへのアクセス権限を付与することもできます。 割り当てられる IAM 役割に応じて、サブジェクトは、アカウント管理タスクを実行したり、サービス・インスタンスを処理したり、またはコンソールの使用や API 呼び出しの実行によってサービスにアクセスしたりするためのさまざまなレベルのアクセス権限を許可されます。
ユーザーとサービス ID にアカウント・リソースへのアクセスを許可するポリシーには、さまざまなタイプがあります。例えば、リソース・グループ・ポリシー、リソース・インスタンス・ポリシー、すべての IAM 対応サービスまたは指定したサービスのすべてのインスタンスへのアクセスに関してアカウント全体に適用するポリシー、すべてまたは 1 つのアカウント管理サービスに関するポリシーなどがあります。 選択に応じて、特定ロケーションのリソースへのアクセス権限の定義や、インスタンス内にある細かいレベルのサービス固有リソースへのアクセス権限の定義といった、カスタム構成オプションが使用可能な場合があります。
ユーザーとサービス ID のアクセス・ポリシーに加えて、特定のサービスまたはサービスのインスタンスが他のサービスにアクセスできるようにする、許可と呼ばれるポリシー・タイプがあります。 サービス間のアクセス権限の割り当てについて詳しくは、許可を使用した、サービス間のアクセス権限の付与を参照してください。
役割
IBM Cloud のアクセス役割とは、アクションをまとめたグループのことです。 アクセス役割を使用すると、ユーザーとサービス ID は、そのポリシーで定義されているターゲット・リソースのコンテキスト内で特定のタスクを実行できます。 事前定義されたアクセス役割には、プラットフォーム管理とサービス・アクセスの 2 タイプがあります。 3 番目のタイプのアクセス役割はカスタム役割です。利用可能なアクションのセットを組織のニーズを満たすように組み合わせてサービス用に作成できます。
プラットフォーム管理役割は、ユーザー・アクセス権限の割り当てやサービス・インスタンスの作成など、プラットフォーム・レベルでリソースを管理するために許可されるアクションを定義します。 プラットフォームの役割は、ユーザーの招待や削除、アクセスグループの管理、サービスIDの管理、プライベートカタログ製品など、アカウント管理サービスの一環として実行できる操作にも適用されます。
サービス・アクセス役割は、サービス API の呼び出しやサービスのダッシュボードへのアクセスなど、許可されるアクションを定義します。 これらの役割は、ポリシー内で選択されたサービスに基づいてカスタマイズされます。
コンソール内でアクセス権限を割り当てると、その役割の横に、各役割にマップされているアクションの数が表示されます。そのリストを掘り下げることで、各役割で何が許可されているかを正確に把握できます。
アクセス権限について詳しくは、IAM 役割を参照してください。
アクション
ユーザーは、各種役割を割り当てられているときに特定のタスクのみを実行できるように、アクションが IBM Cloud IAM 役割にマップされます。 アクションは、許可や操作と呼ばれることもあります。 役割がサービスの使用にどのようにマップされるかは各サービスで定義されるため、各役割の許可アクションは、アクセスされるサービスによって変わります。 詳しくは、IAM の役割とアクションを参照してください。
エンタープライズ管理 IAM テンプレート
エンタープライズ管理 IAM テンプレートは、 エンタープライズクラウド環境でのアカウントと課金管理を一元化したアカウントの階層構造。全体でアクセス管理とアカウント・セキュリティーの設定を標準化するための便利なツールです。 テンプレートを使用すると、よく使用されるアクセス グループ、信頼できるプロファイル、セキュリティ設定を一貫した方法で定義できるため、セキュリティ ポリシーが企業全体に均一に適用されます。 これは、組織標準に準拠するために特に重要です。組織標準では、すべてのアカウントまたは一部のアカウントで特定のアクセス管理およびセキュリティー設定を一貫して構成する必要がある場合があります。 IAM テンプレートを使用すると、セキュリティ ポリシーの管理を簡素化し、構成ミスや人為的エラーのリスクを軽減し、全体的なセキュリティ体制を向上させることができます。 詳しくは、 エンタープライズ管理 IAM の仕組み を参照してください。
子アカウントのエンタープライズ管理 IAM リソースには、 enterprise-managedというタグが付きます。
アクション・コントロール
アクション コントロールは、子アカウント管理者が自分のアカウント内のエンタープライズ管理の IAM リソースに対して実行できる操作に関する設定を適用します。 子アカウント管理者が、そのアカウントに割り当てたエンタープライズ管理アクセス グループにメンバーを追加できるようにする必要がある場合があります。 この場合、メンバーを追加するためのアクション・コントロールを有効にすることができます。 または、子アカウント管理者が信頼できるプロファイルに新しいポリシーを追加することを禁止することもできます。 デフォルトでは、アクション コントロールにより、子アカウント管理者が自分のアカウント内のエンタープライズ管理 IAM リソースに変更を加えることが制限されます。
アクセス管理システム
IBM Cloud IAM 制御システムは、サービスのコンテキスト内でユーザーまたはサービス ID によるアクションを、そのユーザーやサービス ID に割り当てられたアクセス・ポリシーに基づいて許可または拒否します。 デフォルトでは、どのユーザーおよびサービス ID にもアクセス権限がありません。 追加された各アクセス・ポリシーにより、ユーザーまたはサービス ID は、アクセス・ポリシーで選択され指定されたターゲットと役割に基づき、アカウント内でアクションを実行できます。 ユーザーが特定アクションを実行しようとすると、制御システムは、ポリシーで定義された属性を使用して、ユーザーにそのタスクの実行許可があるかどうかを判別します。 詳しくは、IBM Cloud IAM の仕組みを参照してください。
ABAC および RBAC とは何ですか?
クラウド・プロバイダーには 2 つの一般的なタイプの IAM システムがあり、これらの各モデルを理解することで、IBM Cloud で IAM がどのように機能するのかをより深く理解できます。
-
属性ベースのアクセス制御 (ABAC) は、ID (ユーザー、サービス ID など)、環境、およびリソースのそれぞれの属性を使用します。 これらの属性は、アクセス要求を許可するか拒否するかを決定するためにアクセス決定エンジンによって使用されます。 ABAC は、役割ベースのアクセス制御システムよりも高いレベルの柔軟性、制御性、および機能性を提供します。 ABAC は通常、きめ細かいアクセス制御が必要な場合、またはさまざまなアクセス制御のユース・ケースを同じ意思決定エンジンで解決する必要がある場合に使用します。 ABAC はきめ細かいアクセス制御を提供することでセキュリティー・リスクを軽減するため、普通は ABAC のほうがより複雑になります (初期セットアップ時は特にそう言えます)。
-
役割ベースのアクセス制御 (RBAC) は、ID (ユーザー、サービス ID など) から役割へのマッピングを使用します。 RBAC 役割は、RBAC 役割を持つ ID がリソースに対して取得できるアクセス権限のタイプを定義します。 通常、アクセス権限は、リソース・タイプまたはリソースのグループに関して付与できます。 RBAC 役割は通常、組織内の職務に基づいて定義します。 RBAC 役割は、ID がその職務を遂行するために必要なアクセス権限を付与します。 RBAC 役割から ID へのマッピングは IAM 管理者が管理するため、これは単純なモデルです。 RBAC 役割のセットアップは、ABAC の初期セットアップより簡単です。
IBM Cloud IAM は、ID およびリソース属性を使用して ABAC モデルを使用します。IBM Cloud IAM は、アクセス・ポリシーを使用して、IAM アクセス決定エンジンが必要とする属性情報を保管します。 また、アクセス・ポリシーは、ポリシーの作成者がリソースへのアクセス権限を付与するのに必要な属性を IAM 意思決定エンジンに通知します。
サポートされている ID 属性は、iam_id とアクセス・グループ ID です。 サポートされているリソース属性は、次のいずれかのカテゴリーに属します。
- リソース CRN で定義されたフィールド (サービス名など)。
- システム全体で定義されたリソース属性 (リソース・グループなど)。
- サービス固有のリソース属性 (名前空間、バケットなど)。
各サービスは、管理対象のリソースに対してサポートされる属性を定義します。 詳しくは、使用するサービスの資料を参照してください。
IBM Cloud IAM のベスト・プラクティスは、アクセス・グループを使用して ID のアクセスを管理することです。 アクセス・グループのアクセス・ポリシーを定義したら、アクセス・グループに ID を追加したり、アクセス・グループから ID を削除したりするだけで、アクセス権限を付与または取り消しできます。 ユーザーまたはサービス ID は、管理者が必要と判断した数のアクセス・グループに属することができ、グループのメンバーは、アクセス・グループに割り当てられているすべてのアクセス権限を継承します。 このアプローチでは、RBAC のシンプルさに加えて、ABAC のきめ細かいアクセス制御のメリットを享受できます。
RBAC に精通している IAM 管理者は、アクセス・グループを使用して RBAC モデルを模倣することができます。 概念的には、アクセス・グループは RBAC 役割に似ています。 従来の RBAC 役割 (システム管理者、ネットワーク管理者、ストレージ管理者など) の使用に慣れている場合、IBM Cloud IAM でこれらを定義するには、アクセス・グループを使用し、それぞれに特定のアクセス・ポリシーを割り当てます。 アクセス・グループの使用とアクセス権限を割り当てるためのベスト・プラクティスについて詳しくは、 リソースを編成してアクセス権限を割り当てるためのベスト・プラクティスを参照してください。
例えば、Storage Administrators
というアクセス・グループを作成するとします。 最初に作成した時点では、アクセス・グループのどのメンバーにもアクセス権限が付与されていません。 次に、アクセスグループに、現在のアカウント内のすべてのストレージリソースと、今後作成されるストレージリソースに管理者権限を付与するポリシーを割り当てることができます。 新しいユーザーがチームに参加し、組織内での職務がアカウントのストレージ管理者である場合は、そのユーザーをアクセス・グループに追加するだけで、職務に必要なすべてのアクセス権限を付与できます。
これは単純な例ですが、このアプローチは、組織内のあらゆる職務、役割、職責に適用できます。 アクセス・グループに割り当てるアクセス・ポリシーは微調整が可能なため、特定のリソース・グループ内のすべてのストレージのストレージ管理者のユース・ケースや、特定のストレージ・タイプのみの管理者のユース・ケースが可能になります。
アクセス権限を素早く割り当てるためにアクセス・グループをセットアップし、アカウントにユーザーを招待し、各ユーザーのアクセス権限を管理するという IBM Cloud IAM の簡単な利用開始手順について詳しくは、リソースに対するアクセス権限の割り当てを参照してください。