私のyamlテンプレートは次のとおりです。ファイアウォールプロパティを追加して、httpトラフィックを許可します。
resources:
- name: deployed-vm2222
type: compute.v1.instance
properties:
zone: us-central1-f
machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/machineTypes/f1-micro
disks:
- deviceName: boot
type: PERSISTENT
boot: true
autoDelete: true
次のように、ファイアウォールルールをテンプレートに追加できます。
- name: allow-http-fw
type: compute.v1.firewall
properties:
allowed:
- IPProtocol: TCP
ports: 80
sourceRanges: [ 0.0.0.0/0 ]
ファイアウォールリソース にリストされているプロパティを定義できます。
このアクションを実行する際に注意すべき点が2つあります。ラベル付けを適用できるように、インスタンスに正しくタグを付けてください。たとえば、インスタンス、http-serverまたはhttps-serverにタグを付けると、ファイアウォールがパブリックトラフィックを処理していることをファイアウォールが認識していることを確認できます。
ファイアウォールエントリの追加は、次の方法で実現できます。
resources:
- name: instance
type: xxxxxxxx
properties:
zone: us-east1-b
tags:
- http-server
- name: default-allow-http
type: compute.v1.firewall
properties:
network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
targetTags: ["http-server"]
sourceRanges: ["0.0.0.0/0"]
allowed:
- IPProtocol: TCP
ports: ["80"]
ファイアウォールでは、次のものを使用します。
targetTags: ["http"]
次に、インスタンスでは次を使用します。
tags:
items: ["http"]
完全なファイルは次のようになります。
resources:
- name: default-allow-http
type: compute.v1.firewall
properties:
targetTags: ["http"]
sourceRanges: ["0.0.0.0/0"]
allowed:
- IPProtocol: TCP
ports: ["80"]
- name: vm-test
type: compute.v1.instance
properties:
zone: xxxx
machineType: xxxx
tags:
items: ["http"]
disks:
- deviceName: boot
type: PERSISTENT
boot: true
autoDelete: true
initializeParams:
diskName: xxxx
sourceImage: xxxx
networkInterfaces:
- network: xxxx
accessConfigs:
- name: External NAT
type: ONE_TO_ONE_NAT
@LundinCastはほぼ完全に正しいですproperties
の下にnetwork:
がありません。
networkInterfaces:
と同じ値になります