A customer wants to deploy a large number of 3-tier web applications on Compute Engine. How should the customer ensure authenticated network separation between the different tiers of the application?
A.
Run each tier in its own Project, and segregate using Project labels.
B.
Run each tier with a different Service Account (SA), and use SA-based firewall rules.
C.
Run each tier in its own subnet, and use subnet-based firewall rules.
D.
Run each tier with its own VM tags, and use tag-based firewall rules.
Answer is B. Keyword is 'authenticated". Reference below:
"Isolate VMs using service accounts when possible"
"even though it is possible to uses tags for target filtering in this manner, we recommend that you use service accounts where possible. Target tags are not access-controlled and can be changed by someone with the instanceAdmin role while VMs are in service. Service accounts are access-controlled, meaning that a specific user must be explicitly authorized to use a service account. There can only be one service account per instance, whereas there can be multiple tags. Also, service accounts assigned to a VM can only be changed when the VM is stopped."
https://cloud.google.com/solutions/best-practices-vpc-design#isolate-vms-service-accounts
VM tags in Google Cloud are a flexible way to categorize and identify virtual machines (VMs) by their function or purpose, such as "frontend," "backend," or "database" for a 3-tier application. By assigning each tier its own tag and applying tag-based firewall rules, the customer can enforce network separation and restrict communication between tiers based on tags. This approach provides authenticated network segmentation by allowing or denying traffic between specific tags, ensuring that only intended communications occur between application tiers.
Ans :C
the question asks for network separation. In case of B, all the tiers are still in the same subnet but are isolated using SA or tags, however, with C, you clearly are separating the network. Hence my answer is C
why the other options are less ideal:
A. Project labels: Project labels are primarily for organizational purposes and don't provide strong network isolation.
B. Service Accounts: While service accounts can be used for authentication, using them alone for network separation can be complex and less effective than subnet-based rules.
D. VM tags: VM tags can be used for filtering in firewall rules, but they don't inherently create network separation.
Run each tier with a different Service Account (SA), and use SA-based firewall rules: Service accounts are primarily designed for authentication and authorization of service-to-service interactions. Using them for network separation is possible but is not their primary use case.
D. Run each tier with its own VM tags, and use tag-based firewall rules: This is the most recommended method for multi-tier applications. VM tags are a straightforward way to identify the role or purpose of a VM (like 'web', 'app', 'database'). When VMs are tagged appropriately, tag-based firewall rules can easily control which tiers can communicate with each other. For example, firewall rules can be set so that only VMs with the 'web' tag can communicate with VMs with the 'app' tag, and so on.
"B"
Keyword here is "authenticated". Service account related answer is the only option that addresses authentication. The rest are network security related.
References:
https://cloud.google.com/compute/docs/access/service-accounts#use-sas
https://cloud.google.com/solutions/best-practices-vpc-design#isolate-vms-service-accounts
"As previously mentioned, you can identify the VMs on a specific subnet by applying a unique network tag or service account to those instances. This allows you to create firewall rules that only apply to the VMs in a subnet—those with the associated network tag or service account. For example, to create a firewall rule that permits all communication between VMs in the same subnet, you can use the following rule configuration on the Firewall rules page:"
B is the right answer
C: is incorrect because we need to spend lot of time designing the network topology etc, google recommended practice is to use simple network design with automation in mind, so service account provides those, hence final decision goes to B
Ans - C
https://cloud.google.com/docs/enterprise/best-practices-for-enterprise-organizations#networking_and_security
https://cloud.google.com/solutions/best-practices-vpc-design#addresses_and_subnets
A voting comment increases the vote count for the chosen answer by one.
Upvoting a comment with a selected answer will also increase the vote count towards that answer by one.
So if you see a comment that you already agree with, you can upvote it instead of posting a new comment.
genesis3k
Highly Voted 4 years agoRic350
1 year, 7 months agogu9singg
3 years, 7 months agoAzureDP900
2 years agoBPzen
Most Recent 6 days, 4 hours agonairj
2 months agopico
6 months, 1 week agoArizonaClassics
1 year, 2 months agoGCBC
1 year, 2 months ago[Removed]
1 year, 4 months agoriteshahir5815
1 year, 8 months agomahi9
1 year, 8 months agoAwesomeGCP
2 years, 1 month agomynk29
2 years, 8 months agomistryminded
2 years, 11 months agogu9singg
3 years, 7 months agogu9singg
3 years, 7 months agogu9singg
3 years, 7 months agoDebasishLowes
3 years, 8 months agosinghjoga
3 years, 10 months agoFellipo
4 years ago[Removed]
4 years ago