已知问题与限制
已知问题和限制包括无法限制对 IBM Cloud® 目录中的某些产品的访问权,以及创建 IBM Cloud Identity and Access Management (IAM) 资源的最大限制。
如需查看您账户的默认限额,请查看 IBM Cloud IAM limits。
Google 登录不支持联合标识
Google 标识登录不可用于具有联合标识的用户,因为他们的公司外部身份提供者 (IdP) 可能需要其他访问权。
目录管理设置不适用于某些 IBM 产品
某些产品不受以下目录可视性设置影响:
- 关闭 IBM Cloud 目录的可视性
- 从目录中排除所有 IBM Cloud 产品
- 从专用目录中排除所有 IBM Cloud 产品
您可以通过转至 IBM Cloud 控制台中的 管理> 目录> 设置 来查看和管理目录可视性设置。
用户仍可以使用 API 或 CLI 来创建以下产品的实例,而不考虑帐户或专用目录中的 目录可视性设置:
- Block Storage for VPC
- Citrix Netscaler VPX
- Fortigate Security Appliance
- Hardware Firewall
- 专用硬件防火墙
- IBM Cloud Backup for Classic
- IBM Cloud Bare Metal Servers
- IBM Cloud Block Storage for Classic
- IBM Cloud Container Registry
- IBM Cloud Content Delivery Network
- IBM Cloud Direct Link
- IBM Cloud Direct Link on Classic
- IBM Cloud Functions
- IBM Cloud Gateway Appliance
- IBM Cloud 硬件安全模块
- IBM Cloud Kubernetes Service
- IBM Cloud Object Storage
- IBM Cloud Schematics
- IBM Cloud 负载均衡器
- IBM Cloud Virtual Servers
- 子网和 IP
- 虚拟私有云
- Virtual Server for VPC
- VLAN
- VPN
- VPN for VPC
基于属性的策略限制
仅当创建作用域限定为所有启用 IAM 的服务的访问策略时,访问管理标记才可用。 在这种情况下,当您启用基于标记的访问权时,无法添加其他属性。 并且,当您将策略基于特定位置或资源组时,无法将任何标记添加到访问策略。
访问策略版本限制
从 2023 年 1 月 25 日起,IAM 支持两个版本的 IAM 策略管理 API: /v2/policies
和 /v1/policies
。v1/polices
允许针对策略的主题和资源中的属性进行字符串比较。v2/polices
引入了一个新模式,该模式提供向后功能兼容性,同时允许更复杂的比较和运算符以及基于时间的条件。
字符串比较
下表列出了可用于构建 /v2/policies
语法访问策略的字符串比较运算符。 如需了解各版本的更多信息,请参阅 比较 /v1/policies
和 /v2/policies
语法。 例如,操作员的使用案例,请参阅 基于资源属性的条件。
最多可以有 10 个条件并嵌套到 2 级别。
运算符 | 描述 |
---|---|
stringEquals |
区分大小写的字符串比较。 在比较之前,布尔值或数字值会被转换为字符串。 |
stringMatch |
在模式与目标字符串之间进行区分大小写的字符串匹配,可以使用星号( * )、问号( ? )、两者或两者都不使用(与字面值相同)。 星号( * )代表字符串中任意零个或多个字符的序列,问号( ? )代表任意单个字符。 您也可以将星号 * 和问号 ? 作为文字值,用两对大括号 {{}} 括起来。 |
stringExists |
布尔值,其中 true 表示字符串必须存在,可以为空。false 表示字符串不能存在。 |
stringEqualsAnyOf |
区分大小写的精确字符串匹配字符串数组中的任意字符串。 最多10个值。 |
stringMatchAnyOf |
区分大小写的字符串匹配字符串数组中的任意字符串。 字符串值可以包含星号( * )、问号( ? )、两者或两者都不包含(与文本值相同)。 星号( * )代表字符串中任意零个或多个字符的序列,问号( ? )代表任意单个字符。 您也可以将星号 * 和问号 ? 作为文字值,用两对大括号 {{}} 括起来。 最多10个值。 |
例如,以下语句包含一个 operator
元素,该元素使用 stringEquals
来指定帐户标识和服务名称必须与 value
元素完全匹配。 该语句还包含一个 operator
元素,该元素使用 stringMatch
来指定可用于组织对这些特定资源的访问的 Event Streams 主题的命名模式。 这样,您可以将一个策略分配给帐户中以
messagehub-topic-dev
开头的所有主题。
"resource": {
"attributes": [
{
"operator": "stringEquals",
"value": "0aeab68aabd14d89bd72e4330150710a0",
"key": "accountId"
},
{
"value": "messagehub",
"operator": "stringEquals",
"key": "serviceName"
},
{
"value": "messagehub-topic-dev*",
"operator": "stringMatch",
"key": "resource"
}
]
},
授权策略 当前仅在 /v1/policies
中受支持。
在控制台中检查策略版本
IAM 访问策略的基于时间和资源属性的条件使用 /v2/policies
语法。 使用 /v1/policies
语法的策略不适合添加基于时间的条件和基于资源属性的条件。 要使用 API 将 /v1/policies
更新为 /v2/policies
,请参阅 使用 API 将 /v1/policies
更新为具有条件的 /v2/policies
。
要检查是否可以将这些条件添加到控制台中的现有策略,请完成以下步骤。
-
转至管理 > 访问权 (IAM)。
-
根据要检查的策略,选择 用户,可信概要文件,服务标识或 访问组。
-
选择特定用户,可信概要文件,服务标识或访问组。
-
转至 访问权 > 访问权策略。
-
单击策略。
/v1/policies
由以下通知指示:v1 策略不可用的条件
-
(可选) 要向使用
/v1/policies
语法的策略添加条件,请删除原始策略并创建新策略。 在控制台中,新策略使用/v2/policies
语法。
使用 API 将 /v1/policies
更新为具有条件的 /v2/policies
使用 /v1/policies
语法的策略不适合添加基于时间的条件和基于资源属性的条件。 要更新版本,可以将 PUT /v2/policies/{id} 与 V1 标识和要包含的任何条件配合使用。 有关更多信息,请参阅 /v2/policies
。
比较 /v1/policies
和 /v2/policies
语法
每个示例中的策略都授予用户对具有“编辑者”角色的计费服务的访问权。 /v2/policies
示例包含基于临时时间的条件,由 "conditions"
参数指示。
编辑,创建和删除策略时,请使用相应的 API 版本。
/v1/policies
{
"type": "access",
"roles": [
{
"role_id": "crn:v1:bluemix:public:iam::::role:Editor"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "000c49bc2724a07000010b1da94c4d0"
},
{
"name": "serviceName",
"value": "billing"
}
]
}
],
"subjects": [
{
"attributes": [
{
"name": "iam_id",
"value": "IBMid-00000AV0S0"
}
]
}
]
}
使用 /v1/policies
列出策略时,API 将返回 /v1/
以及帐户中每个 /v2/
策略的占位符策略。 有关更多信息,请参阅 /v1/policies
返回 /v2/
策略帐户 的占位符
/v2/policies
{
"type": "access",
"control": {
"grant": {
"roles": [
{
"role_id": "crn:v1:bluemix:public:iam::::role:Editor"
}
]
}
},
"resource": {
"attributes": [
{
"operator": "stringEquals",
"value": "000c49bc2724a07000010b1da94c4d0",
"key": "accountId"
},
{
"value": "billing",
"operator": "stringEquals",
"key": "serviceName"
}
]
},
"rule": {
"operator": "and",
"conditions": [
{
"key": "{{environment.attributes.current_date_time}}",
"operator": "dateTimeGreaterThanOrEquals",
"value": "2023-01-01T09:00:00+00:00"
},
{
"key": "{{environment.attributes.current_date_time}}",
"operator": "dateTimeLessThanOrEquals",
"value": "2023-01-06T17:59:59+00:00"
}
]
},
"pattern": "time-based-conditions:once",
"subject": {
"attributes": [
{
"key": "iam_id",
"operator": "stringEquals",
"value": "IBMid-00000AV0S0"
}
]
}
}
/v1/policies
返回 /v2/
策略的占位符
使用 /v1/policies
列出策略时,API 将返回 /v1/
以及帐户中每个 /v2/
策略的占位符策略。 占位符指示帐户中存在其他策略,同时遵守 /v1/
模式。 要查看 /v2/
策略的完整内容,请使用 /v2/policies
列出策略,或者使用 GET: v2/policies/<ID>
检索各个策略。 例如,请参阅以下占位符策略:
{
"id": "33b901fa-8ec5-4432-a2e6-24b6a212c20a",
"type": "access",
"description": "**This is a unsupported policy version placeholder, to view the full content, please call GET with provided href**",
"subjects": [{
"attributes": [{
"name": "iam_id",
"value": "unsupported version"
}]
}],
"roles": [{
"role_id": "crn:v1:bluemix:public:iam::::role:UnsupportedVersion",
"display_name": "Unsupported Version",
"description": "**This is a unsupported policy version placeholder, to view the full content, please call GET with provided href**"
}],
"resources": [{
"attributes": [{
"name": "accountId",
"value": "000c49bc2724a07000010b1da94c4d0"
}]
}],
"href": "https://iam.cloud.ibm.com/v2/policies/88b901fa-6ec5-888-a2e6-24b6a212c20a"
}
受外部身份互动限制影响的服务
限制外部身份交互要求对您账户中的资源使用 IAM 访问策略的用户只有在您的账户或允许列表中的账户进行身份验证后才能访问这些资源。 如果外部身份交互设置为“有限”模式,下列服务或其某些功能可能无法按预期运行:
- IBM Cloud Satellite
- IBM Cloud Object Storage- 将无法访问公共访问桶
- IBM Cloud Code Engine
- IBM Cloud® DevOps Insights
- 访问报告(生成 CSV 或 JSON 资源访问报告)
有关此设置的更多信息,请参阅 管理外部身份交互。