IAM ポリシーとは何か、誰が割り当てを行えるのか?
ポリシーは、指定されたターゲット・リソースのコンテキストで特定のアクションを実行できるように、リソースのセットに対する 1 つまたは複数の役割をサブジェクトに付与します。
以下の図は、IAM ポリシーをどのように作成するのかを説明するのに役立ちます。 ポリシーは常に、最初にサブジェクトを指定することによって作成します。 サブジェクトは、特定のユーザー、サービス ID、アクセス・グループ、またはトラステッド・プロファイルです。 次に、ユーザーによるアクセスを許可する、ポリシーのターゲットを選択します。 例えば、リソース・グループ内のすべてのサービス、アカウント内のすべての IAM 対応サービス、アカウント管理サービス、または特定のサービス・インスタンスなどです。 最後に、使用可能な役割から役割を選択して、アクセス・ポリシーを完成させます。 これらの役割は、ユーザーが実行できるアクションを正確に定義します。 選択したサービスによっては、さらに多くの構成オプションを使用できる場合があります。
適切な役割を持っている場合、ポリシーを割り当て、管理することができます。 以下の表は、ポリシー管理タスクと、各タスクに必要な役割を示しています。
アクション | 必要な役割 |
---|---|
アカウント内のすべてのサービスおよびインスタンスに関するポリシーの作成 | アカウント所有者、または、すべてのアカウント管理サービスおよびすべての ID およびアクセス対応サービスの管理者 |
アカウント内の 1 つのサービスに関するポリシーの作成 | アカウント所有者、すべての ID およびアクセス対応サービスの管理者、または、アカウント内のサービスの管理者 |
1 つのサービス・インスタンスに関するポリシーの作成 | アカウント所有者、すべての ID およびアクセス対応サービスの管理者、アカウント内のサービスの管理者、関連するリソース・グループ内のすべてのサービスの管理者、または、サービス・インスタンスの管理者 |
一般的なアクセス・ポリシーのタイプ
以下のタイプのアクセス・ポリシーを割り当てることによって、ユーザー、サービス ID、またはアクセス・グループ用に、微細化されたアクセス権限を提供できます。
- すべてのアカウント管理サービス
- 特定のアカウント管理サービス
- すべての IAM アカウント管理サービス。これらは、IAM ID、IAM アクセス管理、IAM ユーザー管理、および IAM グループを含むアカウント管理サービスのサブセットです。
- 特定の IAM サービス
- アカウント内のすべてのリソース
- 個別リソース・グループに属しているすべてのサービス内のすべてのリソースと、そのリソース・グループを管理する能力
- リソース・グループ内の単一サービス内のすべてのリソースと、そのリソース・グループを管理する能力
- リソースが割り当てられている先のリソース・グループに関係なく、アカウント全体での単一サービス内のすべてのリソース
- 個別インスタンス内のリソース
- インスタンス内の単一リソース・タイプ (例: Object Storage インスタンス内のバケット)
ユーザーに完全な管理者アクセス権限を与えて、ユーザーの招待や削除、請求や利用状況の確認、サービスIDの管理、アクセスグループの管理、ユーザーアクセスの管理、およびアカウントリソースへのアクセスなど、 アカウント管理タスク を実行できるようにしたい場合は、ユーザーに以下のアクセス権限を割り当てる必要があります
- アカウント内のすべてのアイデンティティおよびアクセスが有効なサービスを対象としたポリシーで、管理者およびマネージャーの役割が割り当てられている。
- 管理者ロールが割り当てられたポリシー 。すべてのアカウント管理サービス。
サービスのグループ
サービスのグループにアクセス権限を割り当てることができるため、複数のサービスにアクセス権限を割り当てるために必要なポリシーは 1 つだけです。 このようにして、アカウント内のポリシーの数を減らし、アクセスを管理するための時間と労力を削減します。
- すべての ID およびアクセス対応サービス: アクセス管理に IAM を使用するすべてのカタログ・サービス。
- すべてのアカウント管理サービス: 請求と使用量、ライセンスと資格、エンタープライズなどのプラットフォーム・サービス。 詳しくは、アカウント管理サービスへのアクセス権限の割り当てを参照してください。
- すべての IAM アカウント管理サービス: IAM プラットフォーム・サービスの IAM Identity、IAM アクセス管理、IAM ユーザー、IAM グループ、および将来の IAM サービスを含むアカウント管理サービスのサブセット。
IBM Cloud アクセス・ポリシーの割り当て
IBM Cloud でアクセス・ポリシーを使用してアクセス権限を割り当てる方法について、使い慣れている他のクラウド・プロバイダーに照らして理解を深めるには、以下のアクセス・ポリシーの詳細と例を参照してください。
IBM Cloud IAM ポリシーは、ユーザーやサービス ID などのアクセス権限を付与する ID (サブジェクト)、アクセスが許可される特定のリソースまたはサービス (ターゲット)、および選択したリソースまたはサービスのコンテキスト内で許可されるアクションを定義する役割で構成されます。
IBM Cloud では、ユーザー、サービス ID、またはアクセス・グループのメンバーには、デフォルトでは何のアクセス権限も付与されません。 IBM Cloud のアクセスモデルは、特定のアクションの完了が許可されるか拒否されるかを理解する上でシンプルです。 管理者が、特定のアクセス役割を定めたアクセス・ポリシーを割り当てて初めて、アクセス権限は付与されます。 IAM システムでは、許可されたアクションを判別するために許可ポリシーと拒否ポリシーを評価する必要はなく、ポリシーの対象となるリソースと、割り当てられた役割によって許可されるアクセス・レベルのみを評価します。
アカウント内のポリシーの数を減らし、各ユーザーに必要な最低限のアクセスだけを維持するには、使用頻度の低いアクセスポリシーを特定して削除することができます。 詳しくは、 非アクティブ・ポリシーの管理 を参照してください。
IBM Cloud は属性ベースであるため、ポリシーでリソースを指定する際には、幅広いリソースのセット (例えば、リソース・グループ内のすべてのリソース) にユーザーがアクセスできるように指定できます。 あるいは、単一サービスの特定のインスタンス、またはサブリソース・タイプ ( Object Storage バケットなど) にユーザーのアクセス権限を絞り込むことができます。IBM Cloud IAM は、必要なタイプのアクセス権限のみを割り当てることができるように、高いレベルの柔軟性と細分性を備えています。 アクセス・ポリシーで属性を使用して割り当てることができるアクセス権限のレベルの例を以下に示します。
- すべてのアカウント管理サービス
- 特定のアカウント管理サービス
- アカウント内のすべての ID およびアクセス対応サービス (アクセス管理に 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 を使用した許可の作成を参照してください。