6.2. AWS PrivateLink エンドポイントに AWS セキュリティーグループをさらに追加する
Red Hat OpenShift Service on AWS クラスターでは、ホストの Virtual Private Cloud (VPC) で公開される AWS PrivateLink エンドポイントに、セキュリティーグループが設定されています。これにより、クラスターのマシン CIDR 範囲内から発信されるリクエストだけにアクセスが制限されます。VPC ピアリング、トランジットゲートウェイ、またはその他のネットワーク接続を介して VPC 外部のエンティティーに API アクセスを許可するには、別のセキュリティーグループを作成して PrivateLink エンドポイントにアタッチする必要があります。
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 次のコマンドを実行して、セキュリティーグループに受信 (Ingress) ルールを追加します。
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 にアクセスできるようになります。