为帐户中的用户定制 IBM Cloud 目录和专用目录
专用目录提供了集中管理对 IBM Cloud® 目录和您自己的目录中产品的访问权的方法。 您可以定制公共目录和专用目录,以使特定解决方案可供帐户中的用户使用。 通过这样做,您可以确保目录与您的业务相关。
准备工作
- 验证您是否正在使用现收现付帐户或预订帐户。 有关更多详细信息,请参阅 查看帐户类型。
- 请确保您具有 目录管理服务上的管理员角色 以完成此任务。
准备工作
- 验证您是否正在使用现收现付帐户或预订帐户。 有关更多详细信息,请参阅 查看帐户类型。
- 请确保您具有 目录管理服务上的管理员角色 以完成此任务。
准备工作
-
验证您是否正在使用现收现付帐户或预订帐户。 有关更多详细信息,请参阅 查看帐户类型。
-
请确保您具有 目录管理服务上的管理员角色 以完成此任务。
-
运行以下命令安装目录管理插件:
ibmcloud plugin install catalogs-management
准备工作
-
验证您是否正在使用现收现付帐户或预订帐户。 有关更多详细信息,请参阅 查看帐户类型。
-
请确保您具有 目录管理服务上的管理员角色 以完成此任务。
-
要使用 Terraform 定制目录,请确保您已完成以下操作:
- 安装 Terraform CLI 并为 Terraform 配置 IBM Cloud 提供程序插件。 有关更多信息,请参阅 Terraform on IBM Cloud®入门 教程。 该插件对用于完成此任务的 IBM Cloud API 进行抽象。
- 创建 Terraform 配置文件以使用 HashiCorp 配置语言定义资源。 有关更多信息,请参阅 Terraform 文档。
使用控制台创建包含所有产品的专用目录
完成以下步骤以创建包含 IBM Cloud 目录中所有产品的目录:
- 转至 IBM Cloud 控制台中的 管理 > 目录,然后单击 创建目录。
- 选择产品 (缺省) 目录类型。
- 输入名称和描述。
- 确保选择了 所有产品 选项,然后单击 创建。 可用性基于在 "设置" 页面上的帐户级别设置的过滤器。
- 通过单击商品目录名称> 管理过滤器来确认商品目录包含所有产品。 然后,检查是否在 步骤 1: 选择以包含或排除 IBM Cloud 目录中的所有产品中选择了 将所有产品包括在 IBM Cloud 目录中。
使用控制台创建包含所选产品的专用目录
完成以下步骤以创建包含 IBM Cloud 目录中的一组特定产品的目录:
- 转至 IBM Cloud 控制台中的 管理 > 目录,然后单击 创建目录。
- 选择产品 (缺省) 目录类型。
- 输入名称和描述。
- 单击创建。
- 单击目录名称> 管理过滤器。
- 在 步骤 1: 选择以包含或排除 IBM Cloud 目录中的所有产品中选择 排除 IBM Cloud 目录中的所有产品。
- 跳过步骤 2,然后单击 步骤 3: 向规则添加异常中的 添加。
- 确保选择 包含 作为条件,然后单独选择您希望用户访问的产品。 在示例项目中,选择 watsonx Assistant,Speech to Text和 Text to Speech。
使用控制台设置 IBM Cloud 目录的可视性
现在,您已创建专用目录,请完成以下步骤以关闭公共目录对帐户中所有用户的可视性。
-
单击面包屑中的 目录。
-
单击设置。
-
将 IBM Cloud 目录 设置为 关闭。
如果您关闭 IBM Cloud 目录的可见性,亮点页面也将被隐藏。 本页可帮助您在不同产品类别中找到最佳结果。
-
通过转至公共目录并展开目录切换器,确认正确应用了过滤器和设置。 仅应在列表中显示帐户中的专用目录。
您可以随时通过更新专用目录的设置来更新包含或排除的产品。
使用控制台授予对专用目录的访问权
要授权用户使用专用目录中的产品,请为他们分配 目录管理服务上的查看者角色。
使用控制台删除专用目录
如果删除专用目录,那么也会删除该目录中的所有产品。 请完成以下步骤,删除私人目录:
- 在 IBM Cloud 控制台中,转至 管理 > 目录,然后单击 专用目录。
- 单击要删除的目录的 操作 图标
,然后选择 删除。
您可以在删除专用目录后的 7 天内 复原该目录。
使用 CLI 创建包含所有产品的专用目录
完成以下步骤以创建包含 IBM Cloud 目录中所有产品的目录:
-
将资源组作为目标以创建目录。 您可以运行
ibmcloud resource groups
命令,然后运行ibmcloud target -g "resource group"
命令。 -
使用以下命令在帐户中创建新的专用目录。
ibmcloud catalog create --name CATALOG [--catalog-description "DESCRIPTION"]
缺省情况下,当您创建新的专用目录时,将显示所有 IBM Cloud 目录产品。 请参阅 目录管理 CLI 以获取更多信息。
使用 CLI 创建包含所选产品的专用目录
完成以下步骤以创建包含 IBM Cloud 目录中的一组特定产品的目录:
- 将资源组作为目标以创建目录。 您可以运行
ibmcloud resource groups
命令,然后运行ibmcloud target -g "resource group"
命令。 - 使用以下命令在帐户中创建新的专用目录。
ibmcloud catalog create --name CATALOG [--catalog-description "DESCRIPTION"]
- 更新过滤器以包含或排除特定产品或产品以及任何适用的定价计划。 请确保指定目录,否则过滤器将缺省为帐户级别。 请参阅 目录管理 CLI 以获取更多命令选项。
ibmcloud catalog filter offering --offering PRODUCT-NAME
使用 CLI 设置 IBM Cloud 目录的可视性
默认情况下,账户中的所有用户都可以看到 IBM Cloud 公共目录。 您可以通过关闭 IBM Cloud 目录的可见性,并将产品添加到您的私人目录中,从而仅向您选择的用户提供产品。 使用以下命令来关闭公共目录对帐户中所有用户的可视性。
ibmcloud catalog filter hide-ibm-public-catalog
使用 CLI 授权访问专用目录
要授权用户使用专用目录中的产品,请为他们分配 目录管理服务上的查看者角色。
使用 CLI 删除专用目录
如果删除专用目录,那么也会删除该目录中的所有产品。 运行以下命令删除私人目录:
ibmcloud catalog delete --catalog CATALOG
您可以在删除专用目录后的 7 天内 复原该目录。
使用 API 创建包含所有产品的专用目录
要创建包含 IBM Cloud 目录中所有产品的目录,请调用 目录管理 API,如以下样本请求中所示。 将变量替换为您帐户中的值。
curl -X 'POST' \
'https://dev-cm.globalcatalog.test.cloud.ibm.com/api/v1-beta/catalogs' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H "Authorization: ${IC_IAM_TOKEN}" \
-d '{"label": "testcurlcatalog", "short_description": "testing creating a catalog through curl"}'
ServiceCall<Catalog> createCatalog(CreateCatalogOptions createCatalogOptions)
Example request
String label = "{label}";
String shortDesc = "{shortDesc}";
CreateCatalogOptions createOptions = new CreateCatalogOptions.Builder().label(label).shortDescription(shortDesc).build();
Response<Catalog> response = service.createCatalog(createOptions).execute();
System.out.println(response.getResult());
createCatalog(params, [callback()])
Example request
label = "{label}";
shortDesc = "{shortDesc}";
response = await service.createCatalog({ 'label': label, 'shortDescription': shortDesc });
console.log(response);
create_catalog(self, id=None, rev=None, label=None, short_description=None, catalog_icon_url=None, tags=None, url=None, crn=None, offerings_url=None, features=None, disabled=None, created=None, updated=None, resource_group_id=None, owning_account=None, catalog_filters=None, syndication_settings=None, **kwargs)
Exapmle request
label = "{label}"
shortDesc = "{shortDesc}"
response = self.service.create_catalog(label=label, short_description=shortDesc)
print(response)
(catalogManagement *CatalogManagementV1) CreateCatalog(createCatalogOptions *CreateCatalogOptions) (result *Catalog, response *core.DetailedResponse, err error)
Example request
label := "{label}"
shortDesc := "{shortDesc}"
createOptions := service.NewCreateCatalogOptions()
createOptions.SetLabel(label)
createOptions.SetShortDescription(shortDesc)
_, response, _ := service.CreateCatalog(createOptions)
fmt.Println(response)
一切IBM Cloud当您创建新的私人目录时,公共目录产品默认可见。 请参阅 目录管理 API 以获取更多信息。
使用 API 创建包含所选产品的专用目录
要在 IBM Cloud 目录中创建包含一组特定产品的目录,请调用 目录管理 API,如以下样本请求中所示。 将变量替换为您帐户中的值。
curl -X 'POST' \
'https://dev-cm.globalcatalog.test.cloud.ibm.com/api/v1-beta/catalogs' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H "Authorization: ${IC_IAM_TOKEN}" \
-d '{"label": "testcurlcatalog4", "short_description": "testing creating a catalog through curl", "catalog_filters": { "include_all": false, "id_filters": { "include": { "filter_terms": [ "AdvancedMobileAccess-d6aece47-d840-45b0-8ab9-ad15354deeea" ] } } }}'
通过设置 include_all
字段对于每个 catalog_filters
对象具有布尔值 false
,确保排除所有公共目录产品。 要指定要包含的产品,可以按 category_filters
或 id_filters
进行过滤。 为 filter_terms
提供要包含的产品属性或产品标识。 在此示例中,AdvancedMobileAccess-d6aece47-d840-45b0-8ab9-ad15354deeea
是产品标识。
请参阅 目录管理 API 以获取更多命令选项。
使用 API 设置 IBM Cloud 目录的可视性
要在帐户中隐藏公共目录,请确保 hide_IBM_cloud_catalog
字段具有布尔值 true
。 或者,您可以为 include_all
字段提供每个 account_filters
对象的布尔值 false
。 然后,只有您创建的专用目录才应显示在您的帐户中。
curl -X "PUT" "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/catalogaccount"
-H "accept: */*"
-H "Authorization: {iam-bearer-token}"
-d '{"id":"string","hide_IBM_cloud_catalog":true,"account_filters":{"include_all":true,"category_filters":{"additionalProp1":{"include":true,"filter":{"filter_terms":["string"]}},"additionalProp2":{"include":true,"filter":{"filter_terms":["string"]}},"additionalProp3":{"include":true,"filter":{"filter_terms":["string"]}}},"id_filters":{"include":{"filter_terms":["string"]},"exclude":{"filter_terms":["string"]}}}}'
请参阅 目录管理 API 以获取更多信息。
使用 API 授予对专用目录的访问权
要授权用户使用专用目录中的产品,请为他们分配 目录管理服务上的查看者角色。
使用API删除私人目录
如果删除专用目录,那么也会删除该目录中的所有产品。 使用以下命令来删除专用目录:
DELETE /catalogs/{catalog_identifier}
请参阅 目录管理 API 以获取更多信息。
您可以在删除专用目录后的 7 天内 复原该目录。
使用 Terraform 创建专用目录
您无法使用 Terraform 自定义公共目录和私有目录,以便为您帐户中的用户提供特定的解决方案。 要自定义公共目录和私有目录,请切换到 UI、CLI 或 API 步骤。
请按照以下步骤创建私人目录:
-
在
main.tf
文件中创建自变量。 以下示例使用ibm_cm_catalog
资源创建目录,其中label
是用于标识目录的显示名称。resource "ibm_cm_catalog" "cm_catalog" { label = "label" short_description = "short_description" }
有关更多信息,请参阅“Terraform 目录管理”页面上的参数参考详细信息。
-
完成构建配置文件后,初始化 Terraform CLI。 有关更多信息,请参阅 初始化工作目录。
terraform init
-
从
main.tf
文件供应资源。 有关更多信息,请参阅 使用 Terraform 供应基础架构。-
运行
terraform plan
以生成 Terraform 执行计划来预览建议的操作。terraform plan
-
运行
terraform apply
以创建计划中定义的资源。terraform apply
-
使用 Terraform 授予对专用目录的访问权
要授权用户使用专用目录中的产品,请为他们分配 目录管理服务上的查看者角色。