@@ -167,7 +167,7 @@ data "aws_iam_policy_document" "read_only_glue_access" {
167167
168168 // Glue Access - Catalog level operations
169169 statement {
170- sid = " GlueCatalogReadOnlyAccess "
170+ sid = " GlueCatalogAccess "
171171 actions = [
172172 " glue:GetCatalogImportStatus" ,
173173 " glue:GetDataCatalogEncryptionSettings" ,
@@ -179,10 +179,9 @@ data "aws_iam_policy_document" "read_only_glue_access" {
179179
180180 // Glue Access - Department database and table operations
181181 statement {
182- sid = " GlueDepartmentDatabaseReadOnlyAccess "
182+ sid = " GlueDepartmentDatabaseAccess "
183183 actions = [
184184 " glue:GetDatabase" ,
185- " glue:GetDatabases" ,
186185 " glue:GetTable" ,
187186 " glue:GetTables" ,
188187 " glue:GetTableVersion" ,
@@ -202,10 +201,6 @@ data "aws_iam_policy_document" "read_only_glue_access" {
202201 " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/${ aws_glue_catalog_database . raw_zone_catalog_database . name } /*" ,
203202 " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/${ aws_glue_catalog_database . refined_zone_catalog_database . name } /*" ,
204203 " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/${ aws_glue_catalog_database . trusted_zone_catalog_database . name } /*" ,
205- " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/unrestricted-raw-zone/*" ,
206- " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/unrestricted-refined-zone/*" ,
207- " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/unrestricted-trusted-zone/*" ,
208-
209204 ]
210205 }
211206
@@ -227,7 +222,6 @@ data "aws_iam_policy_document" "read_only_glue_access" {
227222 " glue:GetWorkflowRun" ,
228223 " glue:GetWorkflowRuns" ,
229224 " glue:ListWorkflows" ,
230- " glue:GetTags" ,
231225 " glue:CheckSchemaVersionValidity" ,
232226 ]
233227 resources = [" *" ]
@@ -237,18 +231,9 @@ data "aws_iam_policy_document" "read_only_glue_access" {
237231 for_each = var. additional_glue_database_access
238232 iterator = additional_db_access
239233 content {
240- sid = " AdditionalGlueDatabaseAccess${ replace (additional_db_access. value . database_name , " /[^a-zA-Z0-9]/" , " " )} "
241- effect = " Allow"
242- # Auto-append essential actions for database listing and access
243- actions = distinct (concat (
244- additional_db_access. value . actions ,
245- [
246- " glue:GetDatabase" , # Required for specific database access
247- " glue:GetDatabases" , # Required for SQL editor database listing
248- " glue:GetPartition" ,
249- " glue:GetPartitions" ,
250- ]
251- ))
234+ sid = " AdditionalGlueDatabaseAccess${ replace (additional_db_access. value . database_name , " /[^a-zA-Z0-9]/" , " " )} "
235+ effect = " Allow"
236+ actions = additional_db_access. value . actions
252237 resources = [
253238 " arn:aws:glue:eu-west-2:${ data . aws_caller_identity . current . account_id } :catalog" ,
254239 " arn:aws:glue:eu-west-2:${ data . aws_caller_identity . current . account_id } :database/${ additional_db_access . value . database_name } " ,
@@ -273,7 +258,7 @@ data "aws_iam_policy_document" "s3_department_access" {
273258 ] : []
274259
275260 statement {
276- sid = " ListAllS3AndKmsKeysFullAccess "
261+ sid = " ListAllS3AndKmsKeys "
277262 effect = " Allow"
278263 actions = [
279264 " s3:ListAllMyBuckets" ,
@@ -283,7 +268,7 @@ data "aws_iam_policy_document" "s3_department_access" {
283268 }
284269
285270 statement {
286- sid = " KmsKeyFullAccessForS3 "
271+ sid = " KmsKeyFullAccess "
287272 effect = " Allow"
288273 actions = [
289274 " kms:Encrypt" ,
@@ -545,7 +530,7 @@ data "aws_iam_policy_document" "glue_access" {
545530
546531 // Glue Access - Catalog level operations
547532 statement {
548- sid = " GlueCatalogFullAccess "
533+ sid = " GlueCatalogAccess "
549534 actions = [
550535 " glue:GetCatalogImportStatus" ,
551536 " glue:GetDataCatalogEncryptionSettings" ,
@@ -557,10 +542,9 @@ data "aws_iam_policy_document" "glue_access" {
557542
558543 // Glue Access - Department database and table operations (read, write, delete)
559544 statement {
560- sid = " GlueDepartmentDatabaseFullAccess "
545+ sid = " GlueDepartmentDatabaseAccess "
561546 actions = [
562547 " glue:GetDatabase" ,
563- " glue:GetDatabases" ,
564548 " glue:GetTable" ,
565549 " glue:GetTables" ,
566550 " glue:GetTableVersion" ,
@@ -589,9 +573,6 @@ data "aws_iam_policy_document" "glue_access" {
589573 " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/${ aws_glue_catalog_database . raw_zone_catalog_database . name } /*" ,
590574 " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/${ aws_glue_catalog_database . refined_zone_catalog_database . name } /*" ,
591575 " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/${ aws_glue_catalog_database . trusted_zone_catalog_database . name } /*" ,
592- " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/unrestricted-raw-zone/*" ,
593- " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/unrestricted-refined-zone/*" ,
594- " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/unrestricted-trusted-zone/*" ,
595576 ]
596577 }
597578
@@ -628,7 +609,6 @@ data "aws_iam_policy_document" "glue_access" {
628609 " glue:StopCrawlerSchedule" ,
629610 " glue:StopTrigger" ,
630611 " glue:StopWorkflowRun" ,
631- " glue:GetTags" ,
632612 " glue:TagResource" ,
633613 " glue:UpdateDevEndpoint" ,
634614 " glue:UpdateJob" ,
@@ -639,30 +619,6 @@ data "aws_iam_policy_document" "glue_access" {
639619 ]
640620 resources = [" *" ]
641621 }
642-
643- dynamic "statement" {
644- for_each = var. additional_glue_database_access
645- iterator = additional_db_access
646- content {
647- sid = " AdditionalGlueDatabaseFullAccess${ replace (additional_db_access. value . database_name , " /[^a-zA-Z0-9]/" , " " )} "
648- effect = " Allow"
649- # Auto-append essential actions for database listing and access
650- actions = distinct (concat (
651- additional_db_access. value . actions ,
652- [
653- " glue:GetDatabase" , # Required for specific database access
654- " glue:GetDatabases" , # Required for SQL editor database listing
655- " glue:GetPartition" ,
656- " glue:GetPartitions" ,
657- ]
658- ))
659- resources = [
660- " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :catalog" ,
661- " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :database/${ additional_db_access . value . database_name } " ,
662- " arn:aws:glue:${ data . aws_region . current . name } :${ data . aws_caller_identity . current . account_id } :table/${ additional_db_access . value . database_name } /*"
663- ]
664- }
665- }
666622}
667623
668624resource "aws_iam_policy" "glue_access" {
0 commit comments