リソースに対するアクセス権限の管理

IAM ポリシーを使用してユーザー ID またはサービス ID のアクセス権限を管理するには、アカウント所有者であるか、または正しいアクセス権限が割り当てられている必要があります。 ユーザーのアクセス権限をリソースに割り当てるには、アカウント内のすべてのサービスの管理者であるか、特定のサービスまたはサービス・インスタンスのための割り当てられた管理者である必要があります。 サービス ID にアクセス権限を割り当てるには、ID サービスまたは特定のサービス ID の管理者でなければなりません。

リソースへのアクセス権限の割り当て

次の 2 つのタイプのポリシーを使用して、リソースへのアクセス権限を割り当てることができます。

  • アカウント内のリソースへのアクセス権限 (1 つのタイプのみ、またはすべてのタイプのオプションを含む)
  • リソースグループ内のリソースへのアクセス(1つのリソースのみ、またはすべてのリソースのオプションを含む

現在使用中のサービスIDの既存のポリシーを削除または編集すると、サービスが中断する可能性があります。

アカウント管理タスク (ユーザーの招待と削除、「請求および使用量」の表示、サービス ID の管理、アクセス・グループの管理、ユーザー・アクセスの管理、すべての IAM 対応リソースへのアクセスの管理など) を実行するための完全な管理者アクセス権限をユーザーに付与するには、ユーザーに以下のアクセス権限を割り当てる必要があります。

  • 管理者ロールとマネージャーロールを持つ Identity and Access 対応サービスのポリシー。
  • アカウント マネジメント・サービス の管理者ロールを持つポリシー。

アクセス管理タグを設定してアクセスを管理することもできます。 詳しくは、タグを使用したリソースに対するアクセス権限の制御を参照してください。

アカウント管理サービスの管理者ロールを持つユーザーは、他のユーザーのアクセス権を変更したり、管理者ロールを持つ他のユーザーを含め、リソースからユーザーを削除することができます。

コンソールでのリソースへのアクセス権限の割り当て

アカウント内の個別リソースへのアクセス権限を割り当てるか、または、アカウント内のすべてのリソースへのアクセス権限を割り当てるには、以下の手順を実行します。

  1. IBM Cloud コンソールで、管理 > アクセス (IAM) をクリックし、ユーザーまたは管理 > アクセス (IAM) を選択し、アクセス権限を割り当てる ID に応じて サービス ID を選択します。
  2. アクセス権限を割り当てるユーザーまたはサービス ID の**「アクション」** アイコン 「アクションのリスト」アイコン>**「アクセス権限の割り当て」**をクリックします。
  3. サービスのグループまたは単一のサービスを選択します。 そして、「次へ」 をクリックします。
  4. アクセス権限のスコープをアカウント内のすべてのリソースに設定するか、属性に基づいて特定のリソースを選択します。
  5. 次へ をクリックします。
  6. 割り当てる役割の任意の組み合わせを選択し、確認をクリックします。
  7. 追加をクリックして、ポリシー構成をポリシー・サマリーに追加します。
  8. (オプション) ユーザーまたはサービス ID を**「アクセス・グループ」**に追加します。
    1. ユーザーまたはサービス ID を所属させるアクセス・グループを選択します。
    2. 「追加」 をクリックします
  9. 割り当て をクリックします。

リソースが含まれるリソース・グループに対する役割を持っていないユーザーは、リソースを表示することはできますが、アカウントの「リソース・リスト」ページからリソースにアクセスして作業を開始することはできません。 ユーザーがリソースにアクセスできるように、リソース・グループ自体にビューアー役割以上を割り当てます。

一部のアカウント、サービスIDの契約限度額の引き上げが可能です。 保険限度額の引き上げを利用するには、 Event Streams または IBM Cloud Object Storage。 また、アクセス・ポリシーを特定のサービス・インスタンス、リソース・タイプ、リソースIDにスコープする必要があります。

コンソールでのリソース・グループ内のアクセス権限の割り当て

リソース・グループ内のすべてのリソースへのアクセス権限、または、リソース・グループ内の 1 つのサービスのみへのアクセス権限を割り当てるには、以下の手順を実行します。

  1. IBM Cloud コンソールで**「管理」>「アクセス (IAM)」をクリックし、どちらの ID にアクセス権限を割り当てるかに応じて、「ユーザー」または「サービス ID」**を選択します。
  2. アクセスを割り当てたいユーザーまたはサービスIDをクリックし、[ アクセス ] > [ アクセスの割り当て] をクリックします。
  3. サービスのグループまたは単一のサービスを選択します。 そして、「次へ」 をクリックします。
  4. アクセス権限のスコープを特定のリソースに設定します。 リソースグループ属性タイプを選択し、リソースグループを入力します。
  5. 次へ をクリックします。
  6. リソースグループを管理するアクセスロールを選択します。 そして、「次へ」 をクリックします。
  7. 割り当てる役割の任意の組み合わせを選択し、確認をクリックします。
  8. 追加をクリックして、ポリシー構成をポリシー・サマリーに追加します。
  9. 割り当て をクリックします。

リソースグループを管理するためのアクセス権を割り当てる

サービスアクセス権を割り当てずに、リソースグループの表示または管理へのアクセス権を割り当てることができます。

管理者としては、すべてのリソースグループにViewerロールを持つアクセスグループを作成することをお勧めします。 こうすることで、サービスリソースへのアクセスを割り当てるときに、リソースグループを表示するための追加のポリシーを作成する必要がなくなります。 ユーザーがリソースグループにサービスインスタンスを作成するには、リソースグループのViewerロールが必要です。

サービスアクセスを割り当てずにリソースグループにアクセスを割り当てるには、以下の手順を実行します:

  1. IBM Cloud コンソールで**「管理」>「アクセス (IAM)」をクリックし、どちらの ID にアクセス権限を割り当てるかに応じて、「ユーザー」または「サービス ID」**を選択します。
  2. アクセスを割り当てたいユーザーまたはサービスIDをクリックし、[ アクセス ] > [ アクセスの割り当て] をクリックします。
  3. リソースグループのみを選択
  4. 条件の追加を選択する。
  5. リソースグループ属性タイプを選択し、リソースグループを入力します。
  6. 次へ をクリックします。
  7. リソースグループを表示または管理するためのアクセスロールを選択します。 そして、 「レビュー 」をクリックする。
  8. 追加をクリックして、ポリシー構成をポリシー・サマリーに追加します。
  9. 割り当て をクリックします。

このタイプのポリシーは、 アカウント内の利用可能なリソースグループごとに必要に応じて繰り返し、 アカウント内のすべてのリソースグループを管理するためのアクセス権を割り当てることができます。

CLI を使用したリソースへのアクセス権限の割り当て

  1. IBM Cloud® CLI にログインします。 複数のアカウントを持っている場合、使用するアカウントを選択するように求めるプロンプトが出されます。 -r フラグを使用してリージョンを指定していない場合、リージョンも選択しなければなりません。

    ibmcloud login
    

    資格情報が拒否された場合、統合 ID を使用している可能性があります。 フェデレーテッド ID を使用してログインするには、--sso フラグを使用します。 詳しくは、フェデレーテッド ID を使用したログインを参照してください。

    IBM Cloud CLI を初めて使用する場合は、入門チュートリアルを参照してください。

  2. アクセス・ポリシーを作成し、それをユーザーまたはサービスIDに割り当てるには、次のコマンドを使用します。 ibmcloud iam user-policy-create.

    • この例では、 sample-service サービスのすべてのインスタンスに対して、 Administrator ロールを持つアカウント個々のリソースへのアクセスを割り当てています:
    ibmcloud iam user-policy-create name@example.com --roles Administrator --service-name sample-service
    
    • この例では、 Administrator ロールを持つ アカウント マネジメント・サービス にアクセスを割り当てている:
    ibmcloud iam service-policy-create name@example.com --roles Administrator --account-management
    
    • この例では、「 All Identity and Access」有効サービスに、 Administrator ロールでアクセ スを割り当てている:
    ibmcloud iam service-policy-create name@example.com --roles Administrator --attributes serviceType=service
    
    • この例では、 Administrator ロールを持つ すべてのIAM アカウント管理サービス にアクセスを割り当てている:
    ibmcloud iam service-policy-create name@example.com --roles Administrator --attributes service_group_id=IAM
    

    一部のアカウント、サービスIDの契約限度額の引き上げが可能です。 保険限度額の引き上げを利用するには、 Event Streams または IBM Cloud Object Storage。 また、アクセス・ポリシーを特定のサービス・インスタンス、リソース・タイプ、リソースIDにスコープする必要があります。

    • この例では Object StorageManager ロールで割り当てています。 これは、特定のサービスインスタンス、リソースタイプ、リソースIDへのアクセスをスコープする:
    ibmcloud iam service-policy-create SERVICE_ID service-name cloud-object-storage --service-instance SERVICE_INSTANCE_GUID --resource-type RESOURCE_TYPE --resource RESOURCE --roles Manager
    

CLI を使用したリソース・グループ内のアクセス権限の割り当て

リソース・グループ内のすべてのリソース、またはリソース・グループの 1 つのサービスのみへのアクセス権限を割り当てる場合、ibmcloud user-policy-create コマンドを実行します。 次の例では、name@example.com に、リソース・グループ ID Operator に対する dda27e49d2a1efca58083a01dfde18f6 役割を与えます。

ibmcloud iam user-policy-create name@example.com --roles Operator --resource-type resource-group --resource dda27e49d2a1efca58083a01dfde18f6

リソース・グループ内のすべてのリソース、またはリソース・グループの 1 つのサービスのみへのアクセス権限を割り当てる場合、ibmcloud iam service-policy-create コマンドを実行します。 次の例では、test というリソース・グループに、サービス Administrator に対する sample-resource-group 役割を付与します。

ibmcloud iam service-policy-create test --roles Administrator --resource-group-name sample-resource-group

CLIを使用してリソースグループを管理するためのアクセス権を割り当てる

サービスアクセス権を割り当てずに、リソースグループの表示または管理へのアクセス権を割り当てることができます。

管理者としては、すべてのリソースグループにViewerロールを持つアクセスグループを作成することをお勧めします。 こうすることで、サービスリソースへのアクセスを割り当てるときに、リソースグループを表示するための追加のポリシーを作成する必要がなくなります。 ユーザーがリソースグループにサービスインスタンスを作成するには、リソースグループのViewerロールが必要です。

次の例では、特定のリソースグループのビューアに対するポリシーを作成します:

iam user-policy-create name@example.com --roles Viewer --resource-type resource-group --resource fec6c95e6a0a44c5bcca138bfe5a1f9e

次の例では、 アカウント内のすべてのリソースグループのビューアに対するポリシーを作成します。

iam user-policy-create name@example.com --roles Viewer --resource-type resource-group

次の例は、リソースグループ内のすべてのリソースのビューアに対するポリシーを作成します

iam user-policy-create name@example.com --roles Viewer --resource-group-name satellite-test

API を使用したリソースへのアクセス権限の割り当て

IBM Cloud® Identity and Access Management(IAM)Policy Management API をコールすることで、 アカウント内の個々のリソースへのアクセス、あるいはアカウント内のリソースのリストへのアクセスを、以下のサンプルリクエストに示すように割り当てることができます。 次の要求例では、サービスのインスタンスに対する Administrator 役割のアクセス権限を付与します。

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' -d '{
  "type": "access",
  "description": "Administrator role for SERVICE_NAME's RESOURCE_NAME",
  "subjects": [
    {
      "attributes": [
        {
          "name": "iam_id",
          "value": "IBMid-123453user"
        }
      ]
    }'
  ],
  "roles":[
    {
      "role_id": "crn:v1:bluemix:public:iam::::role:Administrator"
    }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "$SERVICE_NAME"
        },
        {
          "name": "resource",
          "value": "$RESOURCE_NAME",
          "operator": "stringEquals"
        }
      ]
    }
  ]
}'
SubjectAttribute subjectAttribute = new SubjectAttribute.Builder()
      .name("iam_id")
      .value("EXAMPLE_USER_ID")
      .build();

PolicySubject policySubjects = new PolicySubject.Builder()
      .addAttributes(subjectAttribute)
      .build();

PolicyRole policyRoles = new PolicyRole.Builder()
      .roleId("crn:v1:bluemix:public:iam::::role:Administrator")
      .build();

ResourceAttribute accountIdResourceAttribute = new ResourceAttribute.Builder()
      .name("accountId")
      .value(exampleAccountId)
      .operator("stringEquals")
      .build();

ResourceAttribute serviceNameResourceAttribute = new ResourceAttribute.Builder()
      .name("serviceName")
      .value("service")
      .operator("stringEquals")
      .build();

PolicyResource policyResources = new PolicyResource.Builder()
      .addAttributes(accountIdResourceAttribute)
      .addAttributes(serviceNameResourceAttribute)
      .build();

CreatePolicyOptions options = new CreatePolicyOptions.Builder()
      .type("access")
      .subjects(Arrays.asList(policySubjects))
      .roles(Arrays.asList(policyRoles))
      .resources(Arrays.asList(policyResources))
      .build();

Response<Policy> response = service.createPolicy(options).execute();
Policy policy = response.getResult();

System.out.println(policy);
const policySubjects = [
  {
    attributes: [
      {
        name: 'iam_id',
        value: 'exampleUserId',
      },
    ],
  },
];
const policyRoles = [
  {
    role_id: 'crn:v1:bluemix:public:iam::::role:Administrator',
  },
];
const accountIdResourceAttribute = {
  name: 'accountId',
  value: exampleAccountId,
  operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
  name: 'serviceName',
  value: 'service',
  operator: 'stringEquals',
};
const policyResources = [
  {
    attributes: [accountIdResourceAttribute, serviceNameResourceAttribute]
  },
];
const params = {
  type: 'access',
  subjects: policySubjects,
  roles: policyRoles,
  resources: policyResources,
};

iamPolicyManagementService.createPolicy(params)
  .then(res => {
    examplePolicyId = res.result.id;
    console.log(JSON.stringify(res.result, null, 2));
  })
  .catch(err => {
    console.warn(err)
  });
policy_subjects = PolicySubject(
  attributes=[SubjectAttribute(name='iam_id', value='example_user_id')])
policy_roles = PolicyRole(
  role_id='crn:v1:bluemix:public:iam::::role:Administrator')
account_id_resource_attribute = ResourceAttribute(
  name='accountId', value=example_account_id)
service_name_resource_attribute = ResourceAttribute(
  name='serviceName', value='service')
policy_resources = PolicyResource(
  attributes=[account_id_resource_attribute,
        service_name_resource_attribute])

policy = iam_policy_management_service.create_policy(
  type='access',
  subjects=[policy_subjects],
  roles=[policy_roles],
  resources=[policy_resources]
).get_result()

print(json.dumps(policy, indent=2))
subjectAttribute := &iampolicymanagementv1.SubjectAttribute{
  Name:  core.StringPtr("iam_id"),
  Value: core.StringPtr("exampleUserID"),
}
policySubjects := &iampolicymanagementv1.PolicySubject{
  Attributes: []iampolicymanagementv1.SubjectAttribute{*subjectAttribute},
}
policyRoles := &iampolicymanagementv1.PolicyRole{
  RoleID: core.StringPtr("crn:v1:bluemix:public:iam::::role:Administrator"),
}
accountIDResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
  Name:     core.StringPtr("accountId"),
  Value:    core.StringPtr(exampleAccountID),
  Operator: core.StringPtr("stringEquals"),
}
serviceNameResourceAttribute := &iampolicymanagementv1.ResourceAttribute{
  Name:     core.StringPtr("serviceName"),
  Value:    core.StringPtr("service"),
  Operator: core.StringPtr("stringEquals"),
}
policyResources := &iampolicymanagementv1.PolicyResource{
  Attributes: []iampolicymanagementv1.ResourceAttribute{
    *accountIDResourceAttribute, *serviceNameResourceAttribute}
}

options := iamPolicyManagementService.NewCreatePolicyOptions(
  "access",
  []iampolicymanagementv1.PolicySubject{*policySubjects},
  []iampolicymanagementv1.PolicyRole{*policyRoles},
  []iampolicymanagementv1.PolicyResource{*policyResources},
)

policy, response, err := iamPolicyManagementService.CreatePolicy(options)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(policy, "", "  ")
fmt.Println(string(b))

サービスのグループにアクセスを割り当てることができます。 すべての Identity and Access 対応サービスにアクセスを割り当てるには、 name 属性に serviceType を指定し、 value service. アカウント マネジメント・サービス へのアクセスを割り当てるには、 name 属性に serviceType を指定し、 value platform_service. アカウント管理サービスのサブセットへのアクセスを割り当てるには すべてのIAM アカウント管理サービスname 属性に service_group_id を指定し、 value IAM

一部のアカウント、サービスIDの契約限度額の引き上げが可能です。 保険限度額の引き上げを利用するには、 Event Streams または IBM Cloud Object Storage。 また、アクセス・ポリシーを特定のサービス・インスタンス、リソース・タイプ、リソースIDにスコープする必要があります。

次のサンプル・リクエストは、サービス ID Reader ロールに Object Storage のインスタンスへのアクセスを与えるものです。 これは、特定のサービスインスタンス、リソースタイプ、リソースIDへのアクセスをスコープする:

curl -X POST 'https://iam.cloud.ibm.com/v1/policies' -H 'Authorization: Bearer $TOKEN' -H 'Content-Type: application/json' -d '{
  "type": "access",
  "description": "Reader role for SERVICE_NAME's RESOURCE_NAME",
  "subjects": [
    {
      "attributes": [
        {
          "name": "iam_id",
          "value": "$SERVICE_ID"
        }
      ]
    }'
  ],
  "roles":[
    {
      "role_id": "crn:v1:bluemix:public:iam::::serviceRole:Reader"
    }
  ],
  "resources":[
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "$ACCOUNT_ID"
        },
        {
          "name": "serviceName",
          "value": "cloud-object-storage"
        },,
        {
          "name": "serviceInstance",
          "value": "$INSTANCE_ID",
          "operator": "stringEquals"
        }
        {
          "name": "resourceType",
          "value": "$RESOURCE_TYPE",
          "operator": "stringEquals"
        },
        {
          "name": "resource",
          "value": "$RESOURCE_NAME",
          "operator": "stringEquals"
        }
      ]
    }
  ]
}'

API を使用したリソース・グループ内のアクセス権限の割り当て

このアクションは、UI または CLI でのみ実行できます。 手順を確認するには、UI または CLI の指示に移動してください。

開始前に

Terraformを使ってリソースにアクセス権を割り当てる前に、以下を完了していることを確認してください:

  • Terraform CLIをインストールし、Terraform用の IBM Cloud Providerプラグインを設定する。 詳しくは、 でTerraformを始める IBM Cloud® のチュートリアルをご覧ください。 このプラグインは、以下のタスクを実行するために使用される IBM Cloud API を抽象化します。
  • main.tfという名前の Terraform 構成ファイルを作成します。 このファイルでは、 HashiCorp Configuration Languageを使用してリソースを定義します。 詳しくは Terraformのドキュメントを参照。

Terraform を使用したリソースへのアクセス権限の割り当て

Terraformを使ってリソースへのアクセスを割り当てるには、以下の手順を実行する:

  1. リソースへのアクセスは、 main.tf ファイルの ibm_iam_user_policy リソース引数を使用して割り当てます。

    以下の例では、ibm_ iam _user_policyを使用して、 kms サービスのすべてのインスタンスに test@in.ibm.com Viewer ロールを与えています。

    resource "ibm_iam_user_policy" "policy" {
     ibm_id = "test@in.ibm.com"
     roles  = ["Viewer"]
    
    resources {
     service = "kms"
    }
    }
    

    一部のアカウント、サービスIDの契約限度額の引き上げが可能です。 保険限度額の引き上げを利用するには、 Event Streams または IBM Cloud Object Storage。 また、アクセス・ポリシーを特定のサービス・インスタンス、リソース・タイプ、リソースIDにスコープする必要があります。

    次の例では、ibm_ iam _user_policyを使用して、サービスIDに Object Storage のインスタンスへのアクセス権を Reader。 これは、特定のサービスインスタンス、リソースタイプ、リソースIDへのアクセスをスコープする:

    resource "ibm_iam_service_policy" "policy" {
     iam_service_id = "$SERVICE_ID"
     roles          = ["Reader"]
    
    resources {
     service              = "cloud_object_storage"
     resource_instance_id = "$SERVICE_INSTANCE_ID"
     resource_type = "$RESOURCE_TYPE"
     resource      = "$RESOURCE"
    }
    }
    

    service オプションには、アクセス権限を割り当てる対象のサービスの名前を指定できます。 詳しくは Terraform Identity and Access Management(IAM) ページの引数リファレンスの詳細を参照してください。

    IAM Access Groupsモジュールでリソースアクセスを制御し、ポリシーベースのパーミッションを実現する。 アクセス戦略のための Terraform IBM Modulesについて 学ぶ。

  2. 設定ファイルのビルドが終わったら、Terraform CLIを初期化します。 詳しくは、 作業ディレクトリの初期化を参照のこと。

    terraform init
    
  3. main.tf ファイルからリソースをプロビジョニングする。 詳しくは Terraformによるインフラのプロビジョニングを参照してください。

    1. terraform plan を実行してTerraformの実行プランを生成し、提案されたアクションをプレビューする。

      terraform plan
      
    2. terraform apply を実行し、プランで定義されたリソースを作成する。

      terraform apply
      

Terraform を使用したリソース・グループ内のアクセス権限の割り当て

Terraformを使ってリソースグループ内のアクセスを割り当てるには、以下の手順を実行します。

  1. main.tf ファイルの ibm_iam_user_policy リソースを使用して、リソースグループ内のアクセスを割り当てます。

    以下の例では、ibm_ iam _user_policyを使用して、ID data.ibm_resource_group.group.id 、リソースグループに test@in.ibm.com Viewer

    data "ibm_resource_group" "group" {
     name = "default"
    }
    
    resource "ibm_iam_user_policy" "policy" {
     ibm_id = "test@in.ibm.com"
     roles  = ["Viewer"]
    
    resources {
     service           = "containers-kubernetes"
     resource_group_id = data.ibm_resource_group.group.id
    }
    }
    

    resource_group_id オプションで、アクセスを割り当てたいリソースグループのIDを指定できます。 詳しくは Terraform Identity and Access Management(IAM) ページの引数リファレンスの詳細を参照してください。

    IAM Access Groupsモジュールを使用して、リソースグループへのアクセスをきめ細かく制御する。 Terraform IBM モジュールで リソースグループのポリシーを確認する。

  2. 設定ファイルのビルドが終わったら、Terraform CLIを初期化します。 詳しくは、 作業ディレクトリの初期化を参照のこと。

    terraform init
    
  3. main.tf ファイルからリソースをプロビジョニングする。 詳しくは Terraformによるインフラのプロビジョニングを参照してください。

    1. terraform plan を実行してTerraformの実行プランを生成し、提案されたアクションをプレビューする。

      terraform plan
      
    2. terraform apply を実行し、プランで定義されたリソースを作成する。

      terraform apply
      

コンソールでのアクセス権限の削除

ユーザーまたはサービス ID のアクセス権限を削除する場合、有効になるまでに最大 10 分かかることがあります。

  1. IBM Cloud コンソールで**「管理」>「アクセス (IAM)」をクリックし、どちらの ID を管理するかに応じて、「ユーザー」または「サービス ID」**を選択します。
  2. アクセス権限を削除するユーザーの名前またはサービス ID を選択します。
  3. アクセス] タブで、削除するポリシーの行の [アクション] アイコン 削除] をクリックします。
  4. 削除しようとしているポリシーの詳細を確認し、確認のために**「削除」**をクリックします。

削除するユーザーまたはサービス ID のチェック・ボックスを選択して**「削除」をクリックすることでも、アクセス・グループからユーザーまたはサービス ID を削除することができます。 次に、「削除」**を再度クリックして、削除処理を承認します。

CLI を使用したアクセス権限の削除

CLI を使用してユーザー・ポリシーを削除するには、ibmcloud iam user-policy-delete コマンドを使用します。

ibmcloud iam user-policy-delete USER_ID POLICY_ID [-f, --force]

CLI を使用してサービス ID ポリシーを削除するには、ibmcloud iam service-policy-delete コマンドを使用します。

ibmcloud iam service-policy-delete SERVICE_ID POLICY_ID [-f, --force]

API を使用したアクセス権限の削除

ポリシーを削除するには、ポリシー ID を指定して IBM Cloud® Identity and Access Management(IAM)Policy Management API を呼び出します:

curl -X DELETE 'https://iam.cloud.ibm.com/v1/policies/$POLICY_ID' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json'
DeletePolicyOptions options = new DeletePolicyOptions.Builder()
      .policyId(examplePolicyId)
      .build();

service.deletePolicy(options).execute();
const params = {
  policyId: examplePolicyId,
};

iamPolicyManagementService.deletePolicy(params)
.then(res => {
  console.log(JSON.stringify(res, null, 2));
})
.catch(err => {
  console.warn(err)
});
response = iam_policy_management_service.delete_policy(
  policy_id=example_policy_id
).get_result()

print(json.dumps(response, indent=2))
options := iamPolicyManagementService.NewDeletePolicyOptions(
  examplePolicyID,
)

response, err := iamPolicyManagementService.DeletePolicy(options)
if err != nil {
  panic(err)
}

ロックされているサービス ID がサブジェクト ID に含まれている場合には、ポリシーは削除できません。

コンソールでの割り当て済みアクセス権限の確認

追加先のアカウントで割り当てられたアクセス権限を確認する必要がある場合は、以下の手順を実行します。

  1. IBM Cloud コンソールで**「管理」>「アクセス (IAM)」をクリックし、どちらの ID を確認するかに応じて、「ユーザー」または「サービス ID」**を選択します。
  2. 名前またはサービス ID を選択します。
  3. アクセス] タブで割り当てられたアクセスを確認します。

追加のアクセス権限が必要な場合は、アカウント所有者に連絡してアクセス権限を更新してもらうか、サービスまたはサービス・インスタンスの管理者に連絡してアクセス・ポリシーを更新してもらう必要があります。

CLI を使用した割り当て済みアクセス権限の確認

追加先のアカウントで割り当てられたアクセス権限を確認する必要がある場合は、ibmcloud iam user-policies コマンドを使用できます。 次の例は、ユーザー name@example.com のポリシーをリストします。

ibmcloud iam user-policies name@example.com

API を使用した割り当て済みアクセス権限の確認

API を使用して実行できるのは、アカウント内のすべてのポリシーの取得と、属性値によるフィルター処理のみです。 アカウント割り当てられたアクセス権は、 IBM Cloud コンソールの Manage > Users > your_name > Access で確認できます。 ポリシーを取得するには、次のサンプルリクエストに示すように IBM Cloud® Identity and Access Management(IAM)Policy Management API を呼び出します:

curl -X GET 'https://iam.cloud.ibm.com/v1/policies?account_id=$ACCOUNT_ID' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json'
ListPoliciesOptions options = new ListPoliciesOptions.Builder()
    .accountId(exampleAccountId)
    .iamId(EXAMPLE_USER_ID)
    .build();

Response<PolicyList> response = service.listPolicies(options).execute();
PolicyList policyList = response.getResult();

System.out.println(policyList);
const params = {
  accountId: exampleAccountId,
  iamId: exampleUserId
};

iamPolicyManagementService.listPolicies(params)
 .then(res => {
   console.log(JSON.stringify(res.result, null, 2));
 })
 .catch(err => {
   console.warn(err)
 });
policy_list = iam_policy_management_service.list_policies(
 account_id=example_account_id, iam_id=example_user_id
).get_result()

print(json.dumps(policy_list, indent=2))
options := iamPolicyManagementService.NewListPoliciesOptions(
 exampleAccountID,
)
options.SetIamID(exampleUserID)

policyList, response, err := iamPolicyManagementService.ListPolicies(options)
if err != nil {
 panic(err)
}
b, _ := json.MarshalIndent(policyList, "", "  ")
fmt.Println(string(b))