IBM Cloud Internet Services (CIS)의 IP에 대한 Shell에서 Security Group 만들기

CIS에 대한 이해



CIS의 프록시 설정이 ON 일 때의 동작



CIS는 프록시 설정을 켜면 다양한 추가 기능을 사용할 수 있지만 오리진 서버에서 볼 때 소스 IP는 CIS(Cloudflare)의 IP 주소(예: 104.x.x.x)입니다.



오리진 서버에 대한 대책



CIS는 이름 확인 (DNS)을 통한 웹 액세스에 대해 위의 액세스 루트입니다.
그러나 오리진 서버에 대한 IP 직접 액세스는 CIS를 통과하지 않으므로 방화벽과 같은 보안 조치가 필요합니다.



CIS (Cloudflare)의 IP 주소



CIS(Cloudflare)의 IP 주소 목록은 다음 문서를 참조하십시오.
오리진 서버는 이 IP 주소에서만 액세스할 수 있어야 합니다.

IBM Cloud CIS whitelisted IP addresses
htps : // c ぉ d. 이 bm. 이 m/도 cs/인 f등 st 하는 c 얽힘/해 s/우우테테s 하고 있어 ps. HTML

JSON 형식으로 검색할 수 있지만 Shell에서는 jq를 사용하여 처리합니다.

cis_ips.json
$ curl https://api.cis.cloud.ibm.com/v1/ips | jq -r .result
{
  "ipv4_cidrs": [
    "173.245.48.0/20",
    "103.21.244.0/22",
    "103.22.200.0/22",
    "103.31.4.0/22",
    "141.101.64.0/18",
    "108.162.192.0/18",
    "190.93.240.0/20",
    "188.114.96.0/20",
    "197.234.240.0/22",
    "198.41.128.0/17",
    "162.158.0.0/15",
    "104.16.0.0/12",
    "172.64.0.0/13",
    "131.0.72.0/22"
  ],
  "ipv6_cidrs": [
    "2400:cb00::/32",
    "2606:4700::/32",
    "2803:f800::/32",
    "2405:b500::/32",
    "2405:8100::/32",
    "2a06:98c0::/29",
    "2c0f:f248::/32"
  ],
  "etag": "fb21705459fea38d23b210ee7d67b753"
}

사전 준비



slcli 설치 설정이 필요하므로 다음 링크에 따라 준비하십시오.

https://qiita.com/khayama/items/d7efe0412341164c17dc#사전 준비

Security Group을 Shell로 만들기



이 스크립트로 만들 수 있습니다.

create_sg_allow_cis_ips.sh
#!/bin/bash

# IP を変数に格納
ipsv4=$(curl https://api.cis.cloud.ibm.com/v1/ips | jq -r .result.ipv4_cidrs)
ipsv6=$(curl https://api.cis.cloud.ibm.com/v1/ips | jq -r .result.ipv6_cidrs)

# 長さを変数に格納
lenv4=$(echo $ipsv4 | jq length)
lenv6=$(echo $ipsv6 | jq length)

# CLI コマンドで Security Group を作成
slcli securitygroup create -n allow_cis_ips -d "Allow all ingress traffic from IBM Cloud Internet Services"

# 作成した Security Group の ID を変数に格納
sgid=$(slcli --format json sg list | jq '.[] | select (.name=="allow_cis_ips") | .id')

# 作成した Security Group に IPv4 のルールを追加
for i in $( seq 0 $(($lenv4 - 1)) ); do
  row=$(echo $ipsv4 | jq -r .[$i])
  slcli sg rule-add $sgid --remote-ip $row --ethertype IPv4 --direction ingress
done

# 作成した Security Group に IPv6 のルールを追加
for i in $( seq 0 $(($lenv6 - 1)) ); do
  row=$(echo $ipsv6 | jq -r .[$i])
  slcli sg rule-add $sgid --remote-ip $row --ethertype IPv6 --direction ingress
done

작성 후 화면



콘솔 화면에서 봐도 만들어진 것을 확인할 수 있습니다.



사이고에게



만든 Security Group을 적용하려면 가상 인스턴스를 잊지 않고 연결하십시오.
Security Group에 대한 자세한 내용은 여기 또는 최신 문서를 참조하십시오.

IBM Cloud Security Groups에 대해 정리해 보았습니다. - Qiita

참고


  • bash에서 jq를 사용하여 JSON 배열을 루프 시키십시오 - Qiita
  • Whitelisting Cloudflare IP addresses – Cloudflare Support
  • 좋은 웹페이지 즐겨찾기