[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en:devops-cloud\u002Fgcp-iam-security":4,"config":256},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":151,"samples":171},"devops-cloud","DevOps \u002F Cloud","","gcp-iam-security","Gcp Iam Security","en",75,3375,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,73,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,127,130,133,136,139,142,145,148],{"key":19,"name":20,"count":11},"aws-compute-ec2-lambda","Aws Compute Ec2 Lambda",{"key":22,"name":23,"count":11},"aws-databases-rds-dynamodb","Aws Databases Rds Dynamodb",{"key":25,"name":26,"count":11},"aws-iam-security","Aws Iam Security",{"key":28,"name":29,"count":11},"aws-messaging-eventing","Aws Messaging Eventing",{"key":31,"name":32,"count":11},"aws-networking-vpc","Aws Networking Vpc",{"key":34,"name":35,"count":11},"aws-storage-s3-ebs","Aws Storage S3 Ebs",{"key":37,"name":38,"count":11},"azure-compute-vm-appservice","Azure Compute Vm Appservice",{"key":40,"name":41,"count":11},"azure-databases-sql-cosmosdb","Azure Databases Sql Cosmosdb",{"key":43,"name":44,"count":11},"azure-iam-security","Azure Iam Security",{"key":46,"name":47,"count":11},"azure-messaging-eventing","Azure Messaging Eventing",{"key":49,"name":50,"count":11},"azure-networking-vnet","Azure Networking Vnet",{"key":52,"name":53,"count":11},"azure-storage-blob-managed-disk","Azure Storage Blob Managed Disk",{"key":55,"name":56,"count":11},"ci-cd-pipelines","Ci Cd Pipelines",{"key":58,"name":59,"count":11},"cloud-architecture-scaling","Cloud Architecture Scaling",{"key":61,"name":62,"count":11},"containers-orchestration","Containers Orchestration",{"key":64,"name":65,"count":11},"deployment-release-strategies","Deployment Release Strategies",{"key":67,"name":68,"count":11},"gcp-compute-gce-cloudrun","Gcp Compute Gce Cloudrun",{"key":70,"name":71,"count":11},"gcp-databases-cloudsql-spanner-firestore","Gcp Databases Cloudsql Spanner Firestore",{"key":8,"name":9,"count":11},{"key":74,"name":75,"count":11},"gcp-messaging-eventing","Gcp Messaging Eventing",{"key":77,"name":78,"count":11},"gcp-networking-vpc","Gcp Networking Vpc",{"key":80,"name":81,"count":11},"gcp-storage-gcs-persistent-disk","Gcp Storage Gcs Persistent Disk",{"key":83,"name":84,"count":11},"infrastructure-as-code","Infrastructure As Code",{"key":86,"name":87,"count":11},"k8s-config-secrets","K8s Config Secrets",{"key":89,"name":90,"count":11},"k8s-observability-troubleshooting","K8s Observability Troubleshooting",{"key":92,"name":93,"count":11},"k8s-scheduling-resources","K8s Scheduling Resources",{"key":95,"name":96,"count":11},"k8s-services-networking","K8s Services Networking",{"key":98,"name":99,"count":11},"k8s-storage","K8s Storage",{"key":101,"name":102,"count":11},"k8s-workloads","K8s Workloads",{"key":104,"name":105,"count":11},"linux-filesystem-permissions-links","Linux Filesystem Permissions Links",{"key":107,"name":108,"count":11},"linux-networking-tools-troubleshooting","Linux Networking Tools Troubleshooting",{"key":110,"name":111,"count":11},"linux-performance-monitoring-resource-limits","Linux Performance Monitoring Resource Limits",{"key":113,"name":114,"count":11},"linux-process-management-signals","Linux Process Management Signals",{"key":116,"name":117,"count":11},"linux-shell-scripting-ops-automation","Linux Shell Scripting Ops Automation",{"key":119,"name":120,"count":11},"linux-systemd-service-management","Linux Systemd Service Management",{"key":122,"name":123,"count":11},"networking-dns-loadbalancing","Networking Dns Loadbalancing",{"key":125,"name":126,"count":11},"observability-monitoring","Observability Monitoring",{"key":128,"name":129,"count":11},"reliability-incident-sre","Reliability Incident Sre",{"key":131,"name":132,"count":11},"security-iam-secrets","Security Iam Secrets",{"key":134,"name":135,"count":11},"terraform-hcl-language-expressions","Terraform Hcl Language Expressions",{"key":137,"name":138,"count":11},"terraform-modules-workspaces","Terraform Modules Workspaces",{"key":140,"name":141,"count":11},"terraform-plan-apply-drift-import","Terraform Plan Apply Drift Import",{"key":143,"name":144,"count":11},"terraform-providers-lifecycle-provisioners","Terraform Providers Lifecycle Provisioners",{"key":146,"name":147,"count":11},"terraform-state-backend-locking","Terraform State Backend Locking",{"key":149,"name":150,"count":11},"terraform-testing-policy-cicd","Terraform Testing Policy Cicd",[152,156,159,162,165,168],{"key":153,"name":154,"count":155},"aws","AWS",450,{"key":157,"name":158,"count":155},"azure","Azure",{"key":160,"name":161,"count":155},"gcp","GCP",{"key":163,"name":164,"count":155},"kubernetes","Kubernetes",{"key":166,"name":167,"count":155},"linux","Linux",{"key":169,"name":170,"count":155},"terraform","Terraform",[172,190,203,217,230,243],{"id":173,"topic":9,"difficulty":174,"body":175,"options":176,"correct_key":181,"explanation":189},"019f8b32-0159-73ca-8bad-12856238292d",1,"In GCP's resource hierarchy, what is the correct top-to-bottom containment order?",[177,180,183,186],{"key":178,"text":179},"a","Folder > Organization > Project > Resource",{"key":181,"text":182},"b","Organization > Folder > Project > Resource",{"key":184,"text":185},"c","Project > Organization > Folder > Resource",{"key":187,"text":188},"d","Organization > Project > Folder > Resource","GCP's resource hierarchy runs Organization at the top, containing zero or more Folders, which contain Projects, which contain individual resources (VMs, buckets, etc.). Folders are optional grouping nodes between Organization and Project, not the other way around.",{"id":191,"topic":9,"difficulty":174,"body":192,"options":193,"correct_key":178,"explanation":202},"019f8b32-015a-7220-a007-7642d3f00da1","An IAM allow policy grants `roles\u002Fviewer` at the Folder level. What happens to Projects inside that Folder by default?",[194,196,198,200],{"key":178,"text":195},"The permission is inherited downward; every Project (and its resources) in the Folder also grants that access",{"key":181,"text":197},"Nothing happens; IAM policies never apply below the level where they are set",{"key":184,"text":199},"Each Project must separately re-grant the same role for it to take effect",{"key":187,"text":201},"The policy only applies to the Folder's own metadata, not to Projects inside it","GCP IAM allow policies are inherited down the resource hierarchy: a binding at the Folder level automatically applies to every Project and resource nested underneath it, without needing to be re-granted at each lower level.",{"id":204,"topic":9,"difficulty":205,"body":206,"options":207,"correct_key":184,"explanation":216},"019f8b32-015a-7bf6-aa28-f5f2a13374bd",2,"A team wants to remove a permission that a Project inherited from its parent Folder's allow policy, by editing only the Project's own IAM policy. Is this possible?",[208,210,212,214],{"key":178,"text":209},"Yes, removing the binding from the Project's policy always overrides the inherited one",{"key":181,"text":211},"Yes, but only for predefined roles, not custom roles",{"key":184,"text":213},"No — a standard allow policy at the Project level cannot revoke access granted by an ancestor; that requires a separate IAM Deny policy",{"key":187,"text":215},"No, inherited permissions can never be revoked at any level under any circumstances","Ordinary IAM allow policies are purely additive down the hierarchy — editing a descendant's own allow policy cannot strip away access granted by an ancestor. To explicitly block access regardless of ancestor grants, GCP provides a separate mechanism (IAM Deny policies) rather than relying on the allow policy itself.",{"id":218,"topic":9,"difficulty":174,"body":219,"options":220,"correct_key":187,"explanation":229},"019f8b32-015b-7629-8952-50d9b960b814","What best describes the difference between a predefined IAM role and a custom IAM role in GCP?",[221,223,225,227],{"key":178,"text":222},"Predefined roles can only be applied to Projects; custom roles can only be applied to Organizations",{"key":181,"text":224},"Custom roles automatically gain new permissions whenever Google adds them to a similar predefined role over time",{"key":184,"text":226},"Predefined roles cannot be bound to service accounts, only custom roles can",{"key":187,"text":228},"Predefined roles are curated by Google and can change over time; custom roles only change when manually updated","Predefined roles (e.g. `roles\u002Fcompute.viewer`) are managed by Google, and their permission set can be updated by Google over time. Custom roles let a user assemble their own exact set of permissions from a supported list, and that set stays fixed until someone manually edits the custom role definition.",{"id":231,"topic":9,"difficulty":205,"body":232,"options":233,"correct_key":178,"explanation":242},"019f8b32-015c-706d-b52f-1668845ed827","A team creates a custom role containing only `storage.objects.get` and `storage.objects.list`. Compared to granting `roles\u002Fstorage.objectViewer` (a predefined role with the same two permissions today), what is the practical tradeoff?",[234,236,238,240],{"key":178,"text":235},"The custom role's permission set is frozen as-is; if Google later adds a related permission to `objectViewer`, the custom role won't automatically gain it, requiring manual maintenance",{"key":181,"text":237},"There is no difference at all; GCP treats custom roles with identical permissions as aliases of the matching predefined role",{"key":184,"text":239},"The custom role will always cost more to evaluate at policy-check time than the predefined role",{"key":187,"text":241},"Custom roles can only be granted to users, never to service accounts, unlike predefined roles","Even if a custom role starts with the exact same permissions as a predefined role, it is a separate, static definition. Google can evolve predefined roles' permission sets over time; a custom role stays exactly as defined until someone manually updates it, which is the real ongoing maintenance cost of using custom roles.",{"id":244,"topic":9,"difficulty":205,"body":245,"options":246,"correct_key":184,"explanation":255},"019f8b32-015c-7d8b-85d7-321e3e0c6a12","Why can't every IAM permission be included in a custom role?",[247,249,251,253],{"key":178,"text":248},"Custom roles have a hard limit of 5 permissions per role",{"key":181,"text":250},"Only permissions used by fewer than 3 predefined roles are eligible to be added to a custom role",{"key":184,"text":252},"Only permissions marked as supporting custom roles can be added",{"key":187,"text":254},"Every permission can be included; there is no restriction on custom role composition","Google publishes a list of permissions that support custom roles. Not all permissions qualify — some are tied to specific predefined-role semantics or internal implementation details that don't make sense to expose piecemeal, so custom roles can only be assembled from that supported subset.",{"fields":257,"seniorities":429,"interview_shapes":430,"locales":435,"oauth":437,"question_count":440,"coach_enabled":441,"jd_match_enabled":441},[258,283,303,320,330,343,362,381,403,410,416,423],{"key":259,"name_tr":260,"name_en":260,"sort":174,"specializations":261},"backend","Backend",[262,265,268,271,274,277,280],{"key":263,"name":264,"field":259},"general","Genel",{"key":266,"name":267,"field":259},"go","Go",{"key":269,"name":270,"field":259},"python","Python",{"key":272,"name":273,"field":259},"java","Java",{"key":275,"name":276,"field":259},"csharp","C#\u002F.NET",{"key":278,"name":279,"field":259},"nodejs","Node.js",{"key":281,"name":282,"field":259},"php","PHP",{"key":284,"name_tr":285,"name_en":285,"sort":205,"specializations":286},"frontend","Frontend",[287,288,291,294,297,300],{"key":263,"name":264,"field":284},{"key":289,"name":290,"field":284},"javascript","JavaScript",{"key":292,"name":293,"field":284},"typescript","TypeScript",{"key":295,"name":296,"field":284},"react","React",{"key":298,"name":299,"field":284},"vue","Vue",{"key":301,"name":302,"field":284},"angular","Angular",{"key":304,"name_tr":305,"name_en":305,"sort":306,"specializations":307},"fullstack","Fullstack",3,[308,309,310,311,312,313,314,315,316,317,318,319],{"key":263,"name":264,"field":304},{"key":266,"name":267,"field":259},{"key":269,"name":270,"field":259},{"key":272,"name":273,"field":259},{"key":275,"name":276,"field":259},{"key":278,"name":279,"field":259},{"key":281,"name":282,"field":259},{"key":289,"name":290,"field":284},{"key":292,"name":293,"field":284},{"key":295,"name":296,"field":284},{"key":298,"name":299,"field":284},{"key":301,"name":302,"field":284},{"key":5,"name_tr":6,"name_en":6,"sort":321,"specializations":322},4,[323,324,325,326,327,328,329],{"key":263,"name":264,"field":5},{"key":153,"name":154,"field":5},{"key":160,"name":161,"field":5},{"key":157,"name":158,"field":5},{"key":163,"name":164,"field":5},{"key":169,"name":170,"field":5},{"key":166,"name":167,"field":5},{"key":331,"name_tr":332,"name_en":332,"sort":333,"specializations":334},"ai-engineer","AI Engineer",5,[335,336,337,340],{"key":263,"name":264,"field":331},{"key":269,"name":270,"field":331},{"key":338,"name":339,"field":331},"llm-rag","LLM\u002FRAG",{"key":341,"name":342,"field":331},"mlops","MLOps",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"database","Veritabanı","Database",6,[349,350,353,356,359],{"key":263,"name":264,"field":344},{"key":351,"name":352,"field":344},"postgresql","PostgreSQL",{"key":354,"name":355,"field":344},"mysql","MySQL",{"key":357,"name":358,"field":344},"mongodb","MongoDB",{"key":360,"name":361,"field":344},"redis","Redis",{"key":363,"name_tr":364,"name_en":365,"sort":366,"specializations":367},"mobile","Mobil","Mobile",7,[368,369,372,375,378],{"key":263,"name":264,"field":363},{"key":370,"name":371,"field":363},"ios-swift","iOS (Swift)",{"key":373,"name":374,"field":363},"android-kotlin","Android (Kotlin)",{"key":376,"name":377,"field":363},"flutter","Flutter",{"key":379,"name":380,"field":363},"react-native","React Native",{"key":382,"name_tr":383,"name_en":384,"sort":385,"specializations":386},"security","Güvenlik","Security",8,[387,388,391,394,397,400],{"key":263,"name":264,"field":382},{"key":389,"name":390,"field":382},"appsec","AppSec",{"key":392,"name":393,"field":382},"offensive-pentest","Offensive \u002F Pentest",{"key":395,"name":396,"field":382},"cloud-security","Cloud Security",{"key":398,"name":399,"field":382},"devsecops","DevSecOps",{"key":401,"name":402,"field":382},"blue-team-incident","Blue Team \u002F Incident",{"key":404,"name_tr":405,"name_en":406,"sort":407,"specializations":408},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[409],{"key":263,"name":264,"field":404},{"key":411,"name_tr":412,"name_en":412,"sort":413,"specializations":414},"data-engineer","Data Engineer",10,[415],{"key":263,"name":264,"field":411},{"key":417,"name_tr":418,"name_en":419,"sort":420,"specializations":421},"game-dev","Oyun Geliştirme","Game Development",11,[422],{"key":263,"name":264,"field":417},{"key":424,"name_tr":425,"name_en":425,"sort":426,"specializations":427},"ml-engineer","ML Engineer",12,[428],{"key":263,"name":264,"field":424},[14,15,16],{"junior":431,"mid":433,"senior":434},{"questions":432,"median_sec":3},20,{"questions":432,"median_sec":3},{"questions":432,"median_sec":3},[436,10],"tr",[438,439],"google","github",21750,true]