# IBM - 基本情報

{{#include ../../banners/hacktricks-training.md}}

## 階層

IBM Cloudリソースモデル ([from the docs](https://www.ibm.com/blog/announcement/introducing-ibm-cloud-enterprises/)):

<figure><img src="../../images/image (225).png" alt=""><figcaption></figcaption></figure>

プロジェクトを分割する推奨方法:

<figure><img src="../../images/image (239).png" alt=""><figcaption></figcaption></figure>

## IAM

<figure><img src="../../images/image (266).png" alt=""><figcaption></figcaption></figure>

### ユーザー

ユーザーには**メールアドレス**が割り当てられています。彼らは**IBMコンソール**にアクセスでき、また**APIキーを生成**してプログラム的に権限を使用できます。\
**権限**は、アクセスポリシーを使用してユーザーに**直接**付与することも、**アクセスグループ**を介して付与することもできます。

### 信頼されたプロファイル

これは**AWSのロール**やGCPのサービスアカウントのようなものです。**VM**インスタンスに**割り当てる**ことができ、**メタデータ**を介してその**資格情報にアクセス**したり、外部プラットフォームからユーザーを認証するために**アイデンティティプロバイダー**が使用できるようにすることも可能です。\
**権限**は、アクセスポリシーを使用して信頼されたプロファイルに**直接**付与することも、**アクセスグループ**を介して付与することもできます。

### サービスID

これは、アプリケーションが**IBM Cloud**と**対話**し、アクションを実行するための別のオプションです。この場合、VMやアイデンティティプロバイダーに割り当てる代わりに、**APIキーを使用**してIBMと**プログラム的**に対話することができます。\
**権限**は、アクセスポリシーを使用してサービスIDに**直接**付与することも、**アクセスグループ**を介して付与することもできます。

### アイデンティティプロバイダー

外部の**アイデンティティプロバイダー**は、**信頼されたプロファイル**にアクセスすることによって、外部プラットフォームからIBM Cloudリソースに**アクセス**できるように構成できます。

### アクセスグループ

同じアクセスグループには**複数のユーザー、信頼されたプロファイル、サービスID**が存在できます。アクセスグループ内の各プリンシパルは、**アクセスグループの権限を継承**します。\
**権限**は、アクセスポリシーを使用して信頼されたプロファイルに**直接**付与できます。\
**アクセスグループは他のアクセスグループのメンバー**になることはできません。

### ロール

ロールは**細かい権限のセット**です。**ロール**は**サービス**に専念しており、そのサービスの権限のみを含むことを意味します。\
**IAMの各サービス**には、**プリンシパルにそのサービスへのアクセスを付与するための**いくつかの**可能なロール**がすでに用意されています: **Viewer, Operator, Editor, Administrator**（ただし、他にもあるかもしれません）。

ロールの権限は、プリンシパルに対してアクセスポリシーを介して付与されるため、例えば**Viewer**と**Administrator**のサービスの**権限の組み合わせ**を付与する必要がある場合、これらの2つを付与する代わりに（プリンシパルに過剰権限を与えることなく）、そのサービスのために**新しいロールを作成**し、その新しいロールに**必要な細かい権限を付与**することができます。

### アクセスポリシー

アクセスポリシーは、**1つのプリンシパルに1つのサービスの1つ以上のロールを付与**することを可能にします。\
ポリシーを作成する際には、次のことを選択する必要があります:

- 権限が付与される**サービス**
- **影響を受けるリソース**
- 付与されるサービスおよびプラットフォームの**アクセス**
- これらは、プリンシパルがアクションを実行するために与えられる**権限**を示します。サービスで**カスタムロール**が作成されている場合、ここでそれを選択することもできます。
- 権限を付与するための**条件**（ある場合）

> [!NOTE]
> ユーザーに複数のサービスへのアクセスを付与するには、複数のアクセスポリシーを生成できます。

<figure><img src="../../images/image (248).png" alt=""><figcaption></figcaption></figure>

## 参考文献

- [https://www.ibm.com/cloud/blog/announcements/introducing-ibm-cloud-enterprises](https://www.ibm.com/cloud/blog/announcements/introducing-ibm-cloud-enterprises)
- [https://cloud.ibm.com/docs/account?topic=account-iamoverview](https://cloud.ibm.com/docs/account?topic=account-iamoverview)

{{#include ../../banners/hacktricks-training.md}}
