4.2. 在 AWS PrivateLink 端点中添加额外的 AWS 安全组
使用 HCP 集群的 ROSA 时,在客户的 VPC 中公开的 AWS PrivateLink 端点有一个安全组,限制对来自集群 Machine CIDR 范围内的请求的访问。为了将集群 API 的访问权限授予 VPC 以外的任何实体,通过 VPC 对等、传输网关或其他网络连接,您必须创建并附加另一个安全组到 PrivateLink 端点,以授予必要的访问权限。
在 AWS PrivateLink 端点中添加额外的 AWS 安全组,仅支持使用 HCP 版本 4.17.2 及更新版本的 ROSA。
先决条件
- 您的企业网络或其他 VPC 具有连接。
- 您有在 VPC 中创建和附加安全组的权限。
流程
运行以下命令,将集群名称设置为环境变量:
$ export CLUSTER_NAME=<cluster_name>
您可以运行以下命令来验证变量是否已设置:
$ echo $CLUSTER_NAME
输出示例
hcp-private
运行以下命令,查找 VPC 端点(VPCE) ID 和 VPC ID:
$ read -r VPCE_ID VPC_ID <<< $(aws ec2 describe-vpc-endpoints --filters "Name=tag:api.openshift.com/id,Values=$(rosa describe cluster -c ${CLUSTER_NAME} -o yaml | grep '^id: ' | cut -d' ' -f2)" --query 'VpcEndpoints[].[VpcEndpointId,VpcId]' --output text)
警告不支持修改或删除默认的 AWS PrivateLink 端点安全组,可能会导致意外行为。
运行以下命令来创建额外的安全组:
$ export SG_ID=$(aws ec2 create-security-group --description "Granting API access to ${CLUSTER_NAME} from outside of VPC" --group-name "${CLUSTER_NAME}-api-sg" --vpc-id $VPC_ID --output text)
运行以下命令,在安全组中添加入站(入口)规则:
$ aws ec2 authorize-security-group-ingress --group-id $SG_ID --ip-permissions FromPort=443,ToPort=443,IpProtocol=tcp,IpRanges=[{CidrIp=<cidr-to-allow>}] <.>
<.> 指定要允许从中访问的 CIDR 块。
运行以下命令,将新安全组添加到 VPCE 中:
$ aws ec2 modify-vpc-endpoint --vpc-endpoint-id $VPCE_ID --add-security-group-ids $SG_ID
现在,您可以从指定的 CIDR 块访问带有 HCP 私有集群的 ROSA API。