第6章 チュートリアル: AWS WAF と AWS ALB を使用した Red Hat OpenShift Service on AWS ワークロードの保護
AWS WAF は Web アプリケーションファイアウォールです。保護対象の Web アプリケーションリソースに転送される HTTP および HTTPS 要求を監視できます。
AWS Application Load Balancer (ALB) を使用して、Red Hat OpenShift Service on AWS ワークロードに Web Application Firewall (WAF) を追加できます。外部ソリューションを使用すると、WAF の処理によるサービス拒否から Red Hat OpenShift Service on AWS リソースを保護できます。
ALB ベースのソリューションを絶対に使用する必要がある場合を除き、より柔軟な CloudFront メソッド を使用することを推奨します。
6.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
複数のアベイラビリティーゾーン (AZ) にまたがる Red Hat OpenShift Service on AWS クラスター。
注記AWS ドキュメントによると、AWS ALB には複数の AZ にまたがる 2 つ以上の パブリック サブネットが必要です。このため、ALB を使用できるのは、複数の AZ にまたがる Red Hat OpenShift Service on AWS クラスターに限られます。
-
OpenShift CLI (
oc
) にアクセスできる。 -
AWS CLI (
aws
) にアクセスできる。
6.1.1. 環境設定 リンクのコピーリンクがクリップボードにコピーされました!
環境変数を準備します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.2. AWS VPC とサブネット リンクのコピーリンクがクリップボードにコピーされました!
このセクションは、既存の VPC にデプロイされたクラスターにのみ適用されます。クラスターを既存の VPC にデプロイしなかった場合は、このセクションをスキップして、その後のインストールセクションに進んでください。
以下の変数を、実際の Red Hat OpenShift Service on AWS デプロイメントに合わせて適切な値に設定します。
export VPC_ID=<vpc-id> export PUBLIC_SUBNET_IDS=(<space-separated-list-of-ids>) export PRIVATE_SUBNET_IDS=(<space-separated-list-of-ids>)
$ export VPC_ID=<vpc-id>
1 $ export PUBLIC_SUBNET_IDS=(<space-separated-list-of-ids>)
2 $ export PRIVATE_SUBNET_IDS=(<space-separated-list-of-ids>)
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- クラスターの VPC ID に置き換えます (例:
export VPC_ID=vpc-04c429b7dbc4680ba
)。 - 2
- クラスターのプライベートサブネット ID のスペース区切りリストに置き換えます。
()
は必ず保持してください。例:export PUBLIC_SUBNET_IDS=(subnet-056fd6861ad332ba2 subnet-08ce3b4ec753fe74c subnet-071aa28228664972f)
。 - 3
- クラスターのプライベートサブネット ID のスペース区切りリストに置き換えます。
()
は必ず保持してください。たとえば、export PRIVATE_SUBNET_IDS=(subnet-0b933d72a8d72c36a subnet-0817eb72070f1d3c2 subnet-0806e64159b66665a)
です。
クラスター識別子を使用して、クラスターの VPC にタグを追加します。
aws ec2 create-tags --resources ${VPC_ID} \ --tags Key=kubernetes.io/cluster/${CLUSTER},Value=shared --region ${REGION}
$ aws ec2 create-tags --resources ${VPC_ID} \ --tags Key=kubernetes.io/cluster/${CLUSTER},Value=shared --region ${REGION}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow パブリックサブネットにタグを追加します。
aws ec2 create-tags \ --resources ${PUBLIC_SUBNET_IDS} \ --tags Key=kubernetes.io/role/elb,Value='1' \ Key=kubernetes.io/cluster/${CLUSTER},Value=shared \ --region ${REGION}
$ aws ec2 create-tags \ --resources ${PUBLIC_SUBNET_IDS} \ --tags Key=kubernetes.io/role/elb,Value='1' \ Key=kubernetes.io/cluster/${CLUSTER},Value=shared \ --region ${REGION}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プライベートサブネットにタグを追加します。
aws ec2 create-tags \ --resources ${PRIVATE_SUBNET_IDS} \ --tags Key=kubernetes.io/role/internal-elb,Value='1' \ Key=kubernetes.io/cluster/${CLUSTER},Value=shared \ --region ${REGION}
$ aws ec2 create-tags \ --resources ${PRIVATE_SUBNET_IDS} \ --tags Key=kubernetes.io/role/internal-elb,Value='1' \ Key=kubernetes.io/cluster/${CLUSTER},Value=shared \ --region ${REGION}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow