[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr: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","tr",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,"GCP'nin kaynak hiyerarşisinde, yukarıdan aşağıya doğru içerme sırası nedir?",[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'nin kaynak hiyerarşisi en üstte Organization ile başlar, sıfır veya daha fazla Folder içerir, bunlar da Project'leri içerir, onlar da tekil kaynakları (VM, bucket vb.) içerir. Folder, Organization ile Project arasında opsiyonel bir gruplama düğümüdür, tersi değil.",{"id":191,"topic":9,"difficulty":174,"body":192,"options":193,"correct_key":178,"explanation":202},"019f8b32-015a-7220-a007-7642d3f00da1","Bir IAM allow policy, Folder seviyesinde `roles\u002Fviewer` veriyor. Bu Folder içindeki Project'lere varsayılan olarak ne olur?",[194,196,198,200],{"key":178,"text":195},"İzin aşağıya doğru miras alınır; Folder içindeki her Project (ve kaynakları) da o erişimi tanır",{"key":181,"text":197},"Hiçbir şey olmaz; IAM policy'leri asla ayarlandıkları seviyenin altına uygulanmaz",{"key":184,"text":199},"Her Project'in etkili olması için aynı role'ü ayrıca yeniden vermesi gerekir",{"key":187,"text":201},"Policy yalnızca Folder'ın kendi metadata'sına uygulanır, içindeki Project'lere değil","GCP IAM allow policy'leri kaynak hiyerarşisinde aşağıya doğru miras alınır: Folder seviyesindeki bir binding, altındaki her Project'e ve kaynağa, her alt seviyede yeniden verilmesine gerek kalmadan otomatik olarak uygulanır.",{"id":204,"topic":9,"difficulty":205,"body":206,"options":207,"correct_key":184,"explanation":216},"019f8b32-015a-7bf6-aa28-f5f2a13374bd",2,"Bir ekip, bir Project'in üst Folder'ının allow policy'sinden miras aldığı bir izni, yalnızca Project'in kendi IAM policy'sini düzenleyerek kaldırmak istiyor. Bu mümkün mü?",[208,210,212,214],{"key":178,"text":209},"Evet, binding'i Project'in policy'sinden kaldırmak her zaman miras alınanı geçersiz kılar",{"key":181,"text":211},"Evet, ama yalnızca predefined role'ler için, custom role'ler için değil",{"key":184,"text":213},"Hayır — Project seviyesindeki standart bir allow policy, bir üst düzeyin verdiği erişimi iptal edemez; bu ayrı bir IAM Deny policy gerektirir",{"key":187,"text":215},"Hayır, miras alınan izinler hiçbir koşulda hiçbir seviyede iptal edilemez","Sıradan IAM allow policy'leri hiyerarşi boyunca yalnızca eklemeli çalışır — bir alt düzeyin kendi allow policy'sini düzenlemek, bir üst düzeyin verdiği erişimi söküp alamaz. Üst-düzey izinlerden bağımsız olarak erişimi açıkça engellemek için GCP ayrı bir mekanizma (IAM Deny policy) sunar, allow policy'nin kendisine güvenilmez.",{"id":218,"topic":9,"difficulty":174,"body":219,"options":220,"correct_key":187,"explanation":229},"019f8b32-015b-7629-8952-50d9b960b814","GCP'de predefined IAM role ile custom IAM role arasındaki farkı en iyi ne açıklar?",[221,223,225,227],{"key":178,"text":222},"Predefined role'ler yalnızca Project'lere uygulanabilir; custom role'ler yalnızca Organization'lara uygulanabilir",{"key":181,"text":224},"Custom role'ler, Google benzer bir predefined role'e her yeni izin eklediğinde otomatik olarak o izinleri kazanır",{"key":184,"text":226},"Predefined role'ler service account'lara bağlanamaz, yalnızca custom role'ler bağlanabilir",{"key":187,"text":228},"Predefined role'ler Google tarafından derlenir ve yönetilir, izin kümeleri zamanla değişebilir; custom role'ler kullanıcı tanımlı izin kümeleridir ve elle güncellenmedikçe değişmez","Predefined role'ler (ör. `roles\u002Fcompute.viewer`) Google tarafından yönetilir ve izin kümeleri zamanla Google tarafından güncellenebilir. Custom role'ler, kullanıcının desteklenen bir listeden kendi tam izin kümesini derlemesine izin verir ve biri custom role tanımını elle düzenlemedikçe o küme sabit kalır.",{"id":231,"topic":9,"difficulty":205,"body":232,"options":233,"correct_key":178,"explanation":242},"019f8b32-015c-706d-b52f-1668845ed827","Bir ekip yalnızca `storage.objects.get` ve `storage.objects.list` içeren bir custom role oluşturuyor. Bugün aynı iki izne sahip predefined role `roles\u002Fstorage.objectViewer`'ı vermeye kıyasla, pratik trade-off nedir?",[234,236,238,240],{"key":178,"text":235},"Custom role'ün izin kümesi olduğu gibi donmuştur; Google sonradan `objectViewer`'a ilgili bir izin eklerse custom role bunu otomatik kazanmaz, elle bakım gerekir",{"key":181,"text":237},"Hiç fark yoktur; GCP aynı izinlere sahip custom role'leri eşleşen predefined role'ün takma adı gibi ele alır",{"key":184,"text":239},"Custom role, policy-check anında predefined role'den her zaman daha maliyetli değerlendirilir",{"key":187,"text":241},"Custom role'ler yalnızca kullanıcılara verilebilir, predefined role'lerin aksine service account'lara asla verilemez","Bir custom role, predefined bir role ile tam olarak aynı izinlerle başlasa bile, ayrı ve statik bir tanımdır. Google predefined role'lerin izin kümesini zamanla değiştirebilir; custom role, biri elle güncelleyene kadar tanımlandığı gibi kalır — bu, custom role kullanmanın gerçek süregelen bakım maliyetidir.",{"id":244,"topic":9,"difficulty":205,"body":245,"options":246,"correct_key":184,"explanation":255},"019f8b32-015c-7d8b-85d7-321e3e0c6a12","Neden her IAM izni bir custom role'e dahil edilemez?",[247,249,251,253],{"key":178,"text":248},"Custom role'lerin role başına sabit bir 5 izin sınırı vardır",{"key":181,"text":250},"Yalnızca 3'ten az predefined role tarafından kullanılan izinler custom role için uygundur",{"key":184,"text":252},"Yalnızca custom role'leri desteklediği işaretlenen (Google'ın yayınladığı bir alt küme) izinler eklenebilir; bazı izinler yalnızca bir predefined role'ün tam bağlamında anlamlı olduğu için hariç tutulur",{"key":187,"text":254},"Her izin dahil edilebilir; custom role kompozisyonuna hiçbir kısıtlama yoktur","Google, custom role'leri destekleyen izinlerin bir listesini yayınlar. Tüm izinler uygun değildir — bazıları belirli predefined-role semantiğine veya parça parça açığa çıkarılması mantıklı olmayan iç uygulama detaylarına bağlıdır, bu yüzden custom role'ler yalnızca o desteklenen alt kümeden derlenebilir.",{"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},[10,436],"en",[438,439],"google","github",21750,true]