6.2. 在 AWS PrivateLink 端点中添加额外的 AWS 安全组
在 AWS 集群上,AWS PrivateLink 端点在主机的 Virtual Private Cloud (VPC)中公开的 AWS PrivateLink 端点有一个安全组,限制对来自集群 Machine CIDR 范围内的请求的访问。您必须创建并附加另一个安全组到 PrivateLink 端点,以便通过 VPC 对等、传输网关或其他网络连接向 VPC 之外的实体授予访问权限。
在 AWS PrivateLink 端点中添加额外的 AWS 安全组,仅适用于 Red Hat OpenShift Service on AWS 4.17.2 及更新的版本。
先决条件
- 您的企业网络或其他 VPC 具有连接。
- 您有在 VPC 中创建和附加安全组的权限。
流程
运行以下命令,将集群名称设置为环境变量:
export CLUSTER_NAME=<cluster_name>
$ export CLUSTER_NAME=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证变量是否存在:
echo $CLUSTER_NAME
$ echo $CLUSTER_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
hcp-private
hcp-private
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,查找 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)
$ 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)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告不支持修改或删除默认的 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)
$ 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)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在安全组中添加入站(入口)规则:
aws ec2 authorize-security-group-ingress --group-id $SG_ID --ip-permissions FromPort=443,ToPort=443,IpProtocol=tcp,IpRanges=[{CidrIp=<cidr-to-allow>}] \
$ aws ec2 authorize-security-group-ingress --group-id $SG_ID --ip-permissions FromPort=443,ToPort=443,IpProtocol=tcp,IpRanges=[{CidrIp=<cidr-to-allow>}] \
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定要允许从中访问的 CIDR 块。
运行以下命令,将新安全组添加到 VPCE 中:
aws ec2 modify-vpc-endpoint --vpc-endpoint-id $VPCE_ID --add-security-group-ids $SG_ID
$ aws ec2 modify-vpc-endpoint --vpc-endpoint-id $VPCE_ID --add-security-group-ids $SG_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在,您可以从指定的 CIDR 块访问 Red Hat OpenShift Service on AWS 私有集群的 API。