Status Update
Comments
gr...@google.com <gr...@google.com> #2
You can control the traffic based on the request/response headers of the Target proxies [1] [2]. However, there is already a feature request to allow this directly on the LB, but I can't provide you with an ETA or guarantee its implementation.
Another way of doing it, will be by creating an internal Load Balancer [3], and have a VPN tunnel from the office to your instances. This will guarantee a secure connection, and the load will be balanced among your instances but it might add extra cost.
Keep in mind that the internal Load Balancer is still in Alpha and is not recommended in production.
Should you have any other Feature requests that you would like them to be implemented for a certain use case, please do not hesitate to open a new thread. We will be more than happy to assist in any way we can.
Any updates about this feature will be posted here as well.
Sincerely,
George
[1]:
[2]:
[3]:
sa...@gmail.com <sa...@gmail.com> #3
ec...@gmail.com <ec...@gmail.com> #4
[Deleted User] <[Deleted User]> #5
ca...@bizzy.cloud <ca...@bizzy.cloud> #6
Seeing as the Firewall Rules that are currently in place apply after the IP address has been changed by the load balancer, there is nowhere to kill the "bad" IP addresses.
vi...@gmail.com <vi...@gmail.com> #7
And bump -- no ability to whitelist/restrict ips. It is really a show stopper for us. Other option for us could be creating TCP load balancer and manually terminate ssl and manually manage ssl certs via kubernetes secrets store. It really feels like workaround and it is not intended to work that way. Please implement this feature asap, we cannot go to prod without it.
oa...@toogood.com <oa...@toogood.com> #8
to...@gmail.com <to...@gmail.com> #9
[Deleted User] <[Deleted User]> #10
mi...@gmail.com <mi...@gmail.com> #12
Scripting compute instance operations is beautifully straightforward in GCP - a lot less hassle than AWS Cloudformation can be, but AWS load balancers have had the ability to apply a security group to an ELB for some time. .
yt...@gmail.com <yt...@gmail.com> #13
mc...@gmail.com <mc...@gmail.com> #14
[Deleted User] <[Deleted User]> #16
mc...@gmail.com <mc...@gmail.com> #17
oa...@toogood.com <oa...@toogood.com> #18
[Deleted User] <[Deleted User]> #19
eb...@gmail.com <eb...@gmail.com> #20
cl...@gmail.com <cl...@gmail.com> #21
la...@gmail.com <la...@gmail.com> #22
[Deleted User] <[Deleted User]> #23
vp...@switch.tv <vp...@switch.tv> #24
[Deleted User] <[Deleted User]> #25
ch...@gmail.com <ch...@gmail.com> #26
lh...@broadsoft.com <lh...@broadsoft.com> #27
mi...@gmail.com <mi...@gmail.com> #28
[Deleted User] <[Deleted User]> #29
se...@gmail.com <se...@gmail.com> #30
in...@conrad.de <in...@conrad.de> #31
[Deleted User] <[Deleted User]> #32
[Deleted User] <[Deleted User]> #33
ma...@logicaltelecom.com <ma...@logicaltelecom.com> #34
jr...@publicisgroupe.net <jr...@publicisgroupe.net> #35
dr...@gtempaccount.com <dr...@gtempaccount.com> #36
o....@gtempaccount.com <o....@gtempaccount.com> #37
we worked around it by setting up the webservers under the loadbalancer (in the pool) to whitelist based of off the x-forwarded-for ip, but not ideal...
dh...@gmail.com <dh...@gmail.com> #38
This issue has been open for more than a year. Any updates?
ju...@groove-x.com <ju...@groove-x.com> #39
[Deleted User] <[Deleted User]> #40
du...@dcrxchange.com <du...@dcrxchange.com> #41
[Deleted User] <[Deleted User]> #42
iv...@tokn.org <iv...@tokn.org> #43
ak...@aakay.net <ak...@aakay.net> #44
cs...@gtempaccount.com <cs...@gtempaccount.com> #45
as...@prenav.com <as...@prenav.com> #46
en...@hdmz.com <en...@hdmz.com> #47
ca...@gmail.com <ca...@gmail.com> #48
[Deleted User] <[Deleted User]> #49
[Deleted User] <[Deleted User]> #50
ka...@gmail.com <ka...@gmail.com> #51
ca...@gmail.com <ca...@gmail.com> #52
[Deleted User] <[Deleted User]> #53
yi...@leadvisor.io <yi...@leadvisor.io> #54
[Deleted User] <[Deleted User]> #55
[Deleted User] <[Deleted User]> #56
an...@skill-sprint.com <an...@skill-sprint.com> #57
jo...@unico.io <jo...@unico.io> #58
an...@gmail.com <an...@gmail.com> #59
ju...@gmail.com <ju...@gmail.com> #60
[Deleted User] <[Deleted User]> #61
[Deleted User] <[Deleted User]> #62
er...@gmail.com <er...@gmail.com> #63
pk...@adservice.com <pk...@adservice.com> #64
[Deleted User] <[Deleted User]> #65
ja...@toptal.com <ja...@toptal.com> #66
al...@gmail.com <al...@gmail.com> #67
[Deleted User] <[Deleted User]> #68
an...@gmail.com <an...@gmail.com> #69
ba...@rakuten.com <ba...@rakuten.com> #70
Need IP whitelisting, don't want development servers open to public
cs...@gmail.com <cs...@gmail.com> #71
ne...@gmail.com <ne...@gmail.com> #72
al...@icarasia.com <al...@icarasia.com> #73
m....@link11.com <m....@link11.com> #74
[Deleted User] <[Deleted User]> #75
2p...@gmail.com <2p...@gmail.com> #76
wi...@gmail.com <wi...@gmail.com> #77
ri...@googlemail.com <ri...@googlemail.com> #78
fc...@mintel.com <fc...@mintel.com> #79
to...@gmail.com <to...@gmail.com> #80
is...@google.com <is...@google.com>
wi...@gmail.com <wi...@gmail.com> #81
he...@servinformacion.com <he...@servinformacion.com> #82
ja...@gmail.com <ja...@gmail.com> #83
[Deleted User] <[Deleted User]> #84
pa...@big.one <pa...@big.one> #85
[Deleted User] <[Deleted User]> #86
ce...@gmail.com <ce...@gmail.com> #87
nt...@gmail.com <nt...@gmail.com> #88
ni...@nickabrown.com <ni...@nickabrown.com> #89
mg...@bdtrust.org <mg...@bdtrust.org> #90
ha...@gmail.com <ha...@gmail.com> #91
sh...@gmsl.co.uk <sh...@gmsl.co.uk> #92
[Deleted User] <[Deleted User]> #93
pu...@gmail.com <pu...@gmail.com> #94
mh...@dinkusa.com <mh...@dinkusa.com> #96
jk...@gmail.com <jk...@gmail.com> #97
go...@gmail.com <go...@gmail.com> #98
[Deleted User] <[Deleted User]> #99
[Deleted User] <[Deleted User]> #100
[Deleted User] <[Deleted User]> #101
yo...@automatiq.com <yo...@automatiq.com> #102
sr...@gmail.com <sr...@gmail.com> #103
[Deleted User] <[Deleted User]> #104
[Deleted User] <[Deleted User]> #105
he...@gmail.com <he...@gmail.com> #106
[Deleted User] <[Deleted User]> #107
br...@detroitlabs.com <br...@detroitlabs.com> #108
br...@detroitlabs.com <br...@detroitlabs.com> #109
[Deleted User] <[Deleted User]> #110
ad...@gmail.com <ad...@gmail.com> #111
[Deleted User] <[Deleted User]> #112
ke...@landria.io <ke...@landria.io> #113
[Deleted User] <[Deleted User]> #114
ca...@gmail.com <ca...@gmail.com> #115
This works with the HTTP(s) load balancer
ha...@gmail.com <ha...@gmail.com> #116
ch...@gmail.com <ch...@gmail.com> #117
On Jul 31, 2019 9:06 AM, <buganizer-system@google.com> wrote:
Replying to this email means your email address will be shared with the
team that works on this product.
*Changed*
*ha...@gmail.com <ha...@gmail.com> added
<
+1
_______________________________
*Reference Info: 35904903 Load balancing - Forwarding rules // No firewall
rules*
component: Public Trackers > Cloud Platform > Networking > Cloud Load
Balancing <
status: New
reporter: oa...@toogood.com
cc: ga...@google.com, ja...@google.com, ly...@google.com
type: Feature Request P2 S2
blocked by: 19823727 <
hotlist: Google Domain <
retention: Component default
Product: Compute Engine
Generated by Google IssueTracker notification system
You're receiving this email because you are subscribed to updates on Google
IssueTracker
<
starred.
Unsubscribe from this issue.
<
ma...@flextech.io <ma...@flextech.io> #118
ba...@gmail.com <ba...@gmail.com> #119
ek...@google.com <ek...@google.com> #120
Thanks for your interest. Google Cloud Armor (
We have supported IP based filtering at the edge through Cloud Armor security policies over the past year and launched the rest of the WAF capabilities as a public beta last month (Nov).
Read more here:
WAF Announcement deep dive blog:
Cloud Armor documentation:
GKE Ingress + Cloud Armor:
Cloud Armor rules language reference:
ge...@google.com <ge...@google.com> #121
1. As noted in the previous post, Cloud Armor provides a way to "create firewall rules on the load balancer" for GCP external HTTP(S) load balancing. Here's another excellent link that gives you an overview of Cloud Armor:
Backend instances or endpoints behind a GCP external HTTP(S) load balancer only need to accept connections from these IP ranges, which are used by the Google Front Ends (GFEs) and health check probers that power this load balancing solution:
•
•
2. If you're interested in one of our other five load balancers, read on:
* SSL Proxy and TCP Proxy: These load balancers currently do not support Cloud Armor, but all connectivity from the load balancer to backends is sourced from the same two ranges:
•
•
3. Internal HTTP(S) load balancers currently do not support Cloud Armor, but connectivity from the load balancer to backends is sourced from the region's proxy-only subnet. You control the IP ranges used by proxy-only subnets:
4. Network TCP/UDP and internal TCP/UDP load balancers are pass-through load balancers. There's no proxy; hence:
- Your backend VMs receive packets with the IP address of the sending client, and
- You can use GCP firewall rules to limit which clients can connect "to the load balancer."
Remember that GCP has an implied deny ingress rule for all traffic to VMs, so you only have to create ingress allow firewall rules for the specific sending clients you need:
em...@gmail.com <em...@gmail.com> #122
em...@gmail.com <em...@gmail.com> #123
ma...@gmail.com <ma...@gmail.com> #124
+1 Please add this feature to tall kinds of load balancers.
fi...@oddschecker.com <fi...@oddschecker.com> #125
pa...@gmail.com <pa...@gmail.com> #126
jc...@payplug.com <jc...@payplug.com> #127
ge...@google.com <ge...@google.com> #128
Thanks for the valuable input! Here's a quick update. I'd encourage everyone to focus on what feature they need rather than on an implementation. Though "firewalls at the forwarding rule" sounds simple, it's very complex to build. Hopefully the following provides some background as to why and shows you how to accomplish what you need today.
If we focus on the pass-through GCP load balancers –
For the pass-through load balancers, the forwarding rule is merely configuration telling us how to route traffic within
If we focus on external proxy load balancers –
For those reasons and those proxy load balancers, Cloud Armor is our path forward because it lets you create a per-load-balancer configuration on our shared GFE fleet. You can configure both L4 and "next generation" (L5+) "firewall" settings. We're constantly updating the Cloud Armor features. For example, I just created a single Cloud Armor security policy blocking over 100 CIDRs. My policy references ten rules and each rule has ten CIDRs in a deny-list. I can reference this policy on multiple backend services on one or more external HTTP(S) load balancers. So my single policy denies from 100 CIDRs, and it can apply to as many external HTTP(S) load balancers as I configure. One 100 CIDR deny list, multiple load balancers.
Another helpful point when discussing IP address deny-lists is to consider the purpose of the deny list. Talking about GFE-based proxy load balancers first, you get a certain amount of automatic DDoS protection from just using Google infrastructure. For pass-through external network load balancing, note that each VM in the load balancer
Does that help? If anyone has specific use-cases, please let us know here.
jc...@payplug.com <jc...@payplug.com> #129
If I focus on our needs, we have an internal HTTP(s) load balancer which have access - through proxy subnet - to the backend instance VM on specific instance port.
We want that the load-balancer frontend IP to be accessible just for a fews VM/subnet on our shared VPC and on-premise network and not all the VM because we are working on a PCI-DSS compliant environment.
I expect a "basic" feature like load balancing could be protected even if I understand that it is shared/global.
Do you need more explanation ? Please let me know. This subject is very important for us.
[Deleted User] <[Deleted User]> #130
al...@google.com <al...@google.com> #131
Thanks!
ge...@google.com <ge...@google.com> #132
Following up on
Thank you for the specific use case – that's very clearly worded. You're correct that we currently don't offer IP address allow/deny controls for GCP internal HTTP(S) load balancers. (We do offer that kind of control using Cloud Armor for GCP external HTTP(S) load balancers.)
Here are my recommendations for regulated workloads:
-
The load balancer doesn't have to be completely unprotected even if any system in your VPC network (or on-premises network connected to your VPC network) can send packets to its IP address. To be clear, "its IP address" is the IP address of the load balancer's forwarding rule, as implemented by Google-managed Envoy proxies [*]. The load balancer's backends – your VMs – could verify that load-balanced requests they receive are legitimate. The standard way to do this is to use HTTP Authorization headers. In addition to using HTTPS transport, this model focuses on which systems are authorized to send requests to your backends, rather than looking at what IP addresses the requesting systems might use.
This option is achievable with our current internal HTTP(S) load balancer offering, but it requires that the load balancer's backends – your VMs – parse the Authorization headers that a client sends the load balancer. Our internal HTTP(S) load balancers preserve these headers when they make requests to the backends.
-
Another approach in the same spirit of access control is to use mutual TLS (mTLS, or client certificate based authentication). Instead of passing HTTP Authorization headers to the load balancer's backends, a client establishes a TLS connection with either a proxy or a backend. In terms of our current offerings, mTLS isn't currently available for our internal HTTP(S) load balancers; however, you can configure a GCP internal (pass-through) TCP load balancer to distribute traffic to backends which perform mTLS. In other words, instead of a proxy load balancer being the TLS server, you can use a pass-through load balancer whose backends are TLS servers. This is how service mesh systems like Istio are implemented in GKE Kubernetes. Services outside a cluster authenticate to services in a cluster using mTLS, and the Istio ingress "gateway" can be an internal TCP load balancer. TLS termination happens on the Envoy proxy Pods running on VMs, and those VMs can be backends of a pass-through internal TCP load balancer.
-
Whether you can use mTLS or not, it's worth considering an internal TCP load balancer for your current needs because you can control the client IP addresses which are permitted to establish TCP connections "to the load balancer" using firewall rules applicable to the load balancer's backend VMs. An internal TCP load balancer is implemented using routing in our software-defined VPC network – there's no proxy or device; it's just all our SDN. With pass-through GCP load balancers, you can control client source IP addresses using GCP firewall rules (or even hierarchical firewall policies).
An overview for internal TCP load balancing is here:
__
[*] One thing to keep in mind about the proxy systems for internal HTTP(S) load balancers: These proxies are managed by Google, and various components in our control plane can connect to them, in order to stop the proxy, start the proxy, and to do rolling updates. (Keeping the Envoy proxies current is important from a security perspective!) So there are control systems "outside of your VPC network" which can "send packets to the load balancer" according to certain interpretations.
be...@banked.com <be...@banked.com> #133
[Deleted User] <[Deleted User]> #134
pr...@vyomnet.com <pr...@vyomnet.com> #135
iv...@gmail.com <iv...@gmail.com> #136
da...@gmail.com <da...@gmail.com> #137
an...@strange.love <an...@strange.love> #138
ky...@gmail.com <ky...@gmail.com> #139
st...@fugle.tw <st...@fugle.tw> #140
yo...@gmail.com <yo...@gmail.com> #141
ru...@webedia-group.com <ru...@webedia-group.com> #142
[Deleted User] <[Deleted User]> #143
in...@incentro.com <in...@incentro.com> #144
ku...@paypay-corp.co.jp <ku...@paypay-corp.co.jp> #145
ma...@rtbhouse.com <ma...@rtbhouse.com> #146
ri...@rocketmoney.com <ri...@rocketmoney.com> #147
za...@gmail.com <za...@gmail.com> #148
[Deleted User] <[Deleted User]> #149
mn...@gmail.com <mn...@gmail.com> #150
+1
ma...@google.com <ma...@google.com>
ma...@google.com <ma...@google.com>
pi...@google.com <pi...@google.com> #151
Have you considered using IP based access levels with IAM conditions using IAP on the load balancer?
Here is how this works.
You enable IAP on the BackendServices that you need protected.
Description
It'll be nice to be able to have it.
In my case I do have multiple environments that some of them need to be only accessible from Office, in the other hand I need to have Load balancer to distribute incoming network traffic to my webservers so it does not work and it open it world wide.