通过自动化工具访问集群

使用 IBM Cloud 的IAM API密钥或服务ID,通过自动化管道、CI/CD工具或非交互式运行的脚本登录到集群。

使用 API 密钥登录

对于自动化和 CI/CD 管道,建议使用 IAM API 密钥。

  1. 创建一个 API 密钥并保存生成的结果——该密钥值无法再次获取。
    ibmcloud iam api-key-create <name>
    
  2. 使用 API 密钥登录。
    ibmcloud login --apikey API_KEY
    
  3. 设置集群上下文。
    ibmcloud oc cluster config -c CLUSTER_NAME_OR_ID
    
  4. 登录集群。
    oc login -u apikey -p API_KEY [--server=PRIVATE_SERVICE_ENDPOINT]
    

使用服务 ID 登录

当其他集群或云中的应用程序需要访问您集群中的服务时,或者当您需要不与特定用户绑定的凭据时,请使用服务 ID。

  1. 创建服务标识。
    ibmcloud iam service-id-create CLUSTER_NAME-id --description "Service ID for cluster CLUSTER_NAME"
    
  2. 将 IAM 策略分配给该服务 ID。
    ibmcloud iam service-policy-create SERVICE_ID --service-name containers-kubernetes --roles ROLE --service-instance CLUSTER_ID
    
  3. 为服务标识创建 API 密钥。
    ibmcloud iam service-api-key-create CLUSTER_NAME-key SERVICE_ID
    
  4. 请按照“使用 API 密钥登录”中的步骤 ,使用 API 密钥登录

使用基于上下文的限制来保护集群

不再支持私有服务端点的白名单。 请尽快从私有服务端点的白名单迁移到基于上下文的限制机制。 有关具体的迁移步骤,请参阅 《从私有服务端点白名单迁移到基于上下文的限制(CBR)》

使用基于上下文的限制(CBR)规则,控制对公共和私有服务端点的访问。

通过 IBM Cloud IAM 向用户授予对您集群的访问权限 后,您可以通过为集群的公共和私有服务端点创建 CBR 规则,从而增加一层额外的安全防护。 只有源自 CBR 规则中子网、且针对您的集群主节点的授权请求才会被允许。

如果您希望允许来自与集群所在 VPC 不同的 VPC 的请求,则必须在 CBR 规则中包含该 VPC 的云服务端点 IP 地址。

例如,要访问集群的私有云服务端点,您必须通过 VPN 或 IBM Cloud Direct Link 连接到 IBM Cloud 经典网络或您的 VPC 网络。 您可以在 CBR 规则中仅指定用于 VPN 或 Direct Link 隧道的子网,以便只有您组织中的授权用户才能从该子网访问私有云服务端点。

公共 CBR 规则(如果您的集群具有公共服务端点)也有助于防止用户在授权被撤销后访问您的集群。 当用户离开您的组织时,您需要撤销其 IBM Cloud IAM权限,这些权限赋予了该用户对集群的访问权限。 不过,用户可能已复制了某个集群的 kubeconfig 管理文件,从而获得了访问该集群的权限。 如果您设置了一条公共 CBR 规则,仅允许从您所在组织拥有的已知公共子网访问集群主节点,那么用户尝试从其他公共 IP 地址进行访问时,该请求将被阻止。

工作节点子网会自动添加到后端 CBR 实现中并从中移除(但不会影响 CBR 规则/区域),这样工作节点就能始终访问集群主节点,用户也无需在自己的 CBR 规则中专门添加这些子网。

如需进一步了解如何使用 CBR 规则保护集群,请参阅 《 使用基于上下文的限制保护集群资源 》和 《 基于上下文的限制示例场景