リソースレベルのパーミッションのためのIAMアクセスポリシー
きめ細かな属性ベースのアクセス・ポリシーを割り当て、特定の IBM Cloud リソースにアクセスできる人と、そのリソースに対して実行できるアクションを制御することで、最小特権アクセスを実現します。
以下の図は、IAM ポリシーをどのように作成するのかを説明するのに役立ちます。 ポリシーは常に、最初にサブジェクトを指定することによって作成します。 サブジェクトは、特定のユーザー、サービス ID、アクセス・グループ、またはトラステッド・プロファイルです。 次に、ユーザーによるアクセスを許可する、ポリシーのターゲットを選択します。 例えば、リソース・グループ内のすべてのサービス、アカウント内のすべての IAM 対応サービス、アカウント管理サービス、または特定のサービス・インスタンスなどです。 最後に、使用可能な役割から役割を選択して、アクセス・ポリシーを完成させます。 これらのロールは、ユーザーがどのようなアクションを実行できるかを定義します。 選択したサービスによっては、さらに多くの構成オプションを使用できる場合があります。
適切な役割を持っている場合、ポリシーを割り当て、管理することができます。 以下の表は、ポリシー管理タスクと、各タスクに必要な役割を示しています。
| アクション | 必要な役割 |
|---|---|
| アカウント内のすべてのサービスおよびインスタンスに関するポリシーの作成 | アカウント所有者、または、すべてのアカウント管理サービスおよびすべての ID およびアクセス対応サービスの管理者 |
| アカウント内の 1 つのサービスに関するポリシーの作成 | アカウント所有者、すべての ID およびアクセス対応サービスの管理者、または、アカウント内のサービスの管理者 |
| 1 つのサービス・インスタンスに関するポリシーの作成 | アカウント所有者、すべての ID およびアクセス対応サービスの管理者、アカウント内のサービスの管理者、関連するリソース・グループ内のすべてのサービスの管理者、または、サービス・インスタンスの管理者 |
一般的なアクセス・ポリシーのタイプ
以下のタイプのアクセス・ポリシーを割り当てることによって、ユーザー、サービス ID、またはアクセス・グループ用に、微細化されたアクセス権限を提供できます。
- すべてのアカウント管理サービス
- 特定のアカウント管理サービス
- すべてのIAM アカウント管理サービス(IAM Identity、IAM Access Management、IAM User Management、IAM Groupsを含むアカウント管理サービスのサブセット)
- 特定のIAMサービス
- アカウント内のすべてのリソース
- 個別リソース・グループに属しているすべてのサービス内のすべてのリソースと、そのリソース・グループを管理する能力
- リソース・グループ内の単一サービス内のすべてのリソースと、そのリソース・グループを管理する能力
- リソースが割り当てられている先のリソース・グループに関係なく、アカウント全体での単一サービス内のすべてのリソース
- 個別インスタンス内のリソース
- インスタンス内の単一リソース・タイプ (例: Object Storage インスタンス内のバケット)
ユーザーの招待と削除、請求と使用状況の表示、サービス ID の管理、アクセス グループの管理、ユーザー アクセスの管理、およびすべてのアカウントリソースへのアクセスなど、 アカウント管理業務 を完了するための完全な管理者アクセス権をユーザーに有効にする場合は、ユーザーに以下のアクセス権を割り当てる必要があります:
- 管理者ロールとマネージャーロールが割り当てられた、 アカウント内のすべての Identity and Access 対応サービスのポリシー。
- アカウント マネジメント・サービス に管理者ロールが割り当てられたポリシー。
サービスグループ
サービスのグループにアクセスを割り当てることができるため、1つのポリシーだけで複数のサービスにアクセスを割り当てることができます。 こうすることで、 アカウント内のポリシーの数を減らし、アクセス管理の手間を減らすことができる。
- アイデンティティとアクセスを有効にするすべてのサービス :アクセス管理にIAMを使用するすべてのカタログサービス。
- アカウント マネジメント・サービス:課金や利用、ライセンスやエンタイトルメント、企業などのプラットフォームサービス。 詳しくは、アカウント管理サービスへのアクセス権限の割り当てを参照してください。
- すべてのIAM アカウント管理サービス:IAM Identity、IAM Access Management、IAM Users、IAM Groups、および将来のIAMサービスを含む、 アカウント管理サービスのサブセット。
IBM Cloud アクセス・ポリシーの割り当て
IBM Cloud でアクセス・ポリシーを使用してアクセス権限を割り当てる方法について、使い慣れている他のクラウド・プロバイダーに照らして理解を深めるには、以下のアクセス・ポリシーの詳細と例を参照してください。
IBM Cloud IAM ポリシーは、ユーザーやサービス ID などのアクセス権限を付与する ID (サブジェクト)、アクセスが許可される特定のリソースまたはサービス (ターゲット)、および選択したリソースまたはサービスのコンテキスト内で許可されるアクションを定義する役割で構成されます。
IBM Cloud では、ユーザー、サービス ID、またはアクセス・グループのメンバーには、デフォルトでは何のアクセス権限も付与されません。 IBM Cloud アクセスモデルは、特定のアクションの実行が許可されたり拒否されたりする仕組みを理解する上ではシンプルだ。 管理者が、特定のアクセス役割を定めたアクセス・ポリシーを割り当てて初めて、アクセス権限は付与されます。 IAM システムでは、許可されたアクションを判別するために許可ポリシーと拒否ポリシーを評価する必要はなく、ポリシーの対象となるリソースと、割り当てられた役割によって許可されるアクセス・レベルのみを評価します。
アカウント内のポリシーの数を減らし、各ユーザーに必要な最小限のアクセスのみを保持するために、使用頻度の低いアクセスポリシーを特定して削除することができます。 詳細については、 非アクティブポリシーの管理を 参照してください。
IBM Cloud は属性ベースであるため、ポリシーでリソースを指定する際には、幅広いリソースのセット (例えば、リソース・グループ内のすべてのリソース) にユーザーがアクセスできるように指定できます。 あるいは、単一サービスの特定のインスタンス、またはサブリソース・タイプ ( Object Storage バケットなど) にユーザーのアクセス権限を絞り込むことができます。IBM Cloud IAM は、必要なタイプのアクセス権限のみを割り当てることができるように、高いレベルの柔軟性と細分性を備えています。 アクセス・ポリシーで属性を使用して割り当てることができるアクセス権限のレベルの例を以下に示します。
- すべてのアカウント管理サービス
- 特定のアカウント管理サービス
- アカウント内のすべてのIdentity and Access Enabledサービス(アクセス管理にIAMを使用するすべてのカタログサービスを含む
- リソース・グループに属するすべてのリソース
- リソース・グループの割り当てに関係なく、アカウント全体にわたる単一サービスのすべてのリソース・タイプ
- アカウント内のサービスの特定のインスタンス
- インスタンス内の単一サブリソース・タイプ (例: Object Storage インスタンス内のバケット)
事前定義されたプラットフォームまたはサービスの特定の役割が、アクセス・レベルを割り当てる際に求めているものと合致しない場合は、特定のサービス用のカスタム役割を作成し、使用可能なアクションから選択して、組織のニーズに合った役割を作成することができます。
ポリシーの例
このポリシーの例では、ID が default で、プラットフォームの役割として abcd2e6fg1h74i44j5kl467m701n5289 が割り当てられている、Viewer という名前のリソース・グループに属している、すべてのサービス・リソースにアクセスできます。 このポリシーは、ユーザー、サービス ID、またはアクセス・グループに割り当てることができます。 この例では、iam_id が
IBMid-3IAMISBEST1 であるユーザーに割り当てられています。
アクセス・グループは、ユーザーやサービス ID のような ID ではなく、ID のグループ化メカニズムです。 アクセス・グループは、アクセス・ポリシーのサブジェクトとして定義でき、グループに割り当てられたアクセスは、そのグループに追加されたすべてのメンバーに適用されます。
{
"type": "access",
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-3IAMISBEST1"
}
]
}
],
"roles": [
{
"role_id": "crn:v1:bluemix:public:iam::::role:Viewer"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "7e522a19eb77477e88e96a600c44fb22"
},
{
"name": "resourceGroupId",
"value": "abcd2e6fg1h74i44j5kl467m701n5289"
}
]
}
]
}
IBM Cloud は、アカウント内のサービス、特定のリソース、またはリソース・グループへのアクセスを提供できるユーザー、サービス ID、アクセス・グループのアクセス・ポリシーに加えて、サービス間のアクセスが提供される、サービス間の許可 (service to service authorization) と呼ばれるアクセス・ポリシーを割り当てる機能も備えています。 このポリシー・タイプの例については、API を使用した許可の作成を参照してください。