AWS Security ChangesHomeSearch

AWS sagemaker-unified-studio medium security documentation change

Service: sagemaker-unified-studio · 2025-10-22 · Security-related medium

File: sagemaker-unified-studio/latest/adminguide/amazon-bedrock-key-permissions.md

Summary

Added detailed KMS key policy JSON template with granular permissions for Amazon Bedrock integration with SageMaker and DataZone

Security assessment

The change introduces a comprehensive KMS key policy that defines least-privilege access controls for encryption operations. It specifically addresses security by: 1) Limiting encryption context to specific domains and services 2) Implementing principal tagging conditions 3) Restricting via-service usage to S3 and SecretsManager 4) Enforcing Bedrock-specific encryption context patterns. These are security controls to prevent unauthorized decryption of sensitive resources.

Diff

diff --git a/sagemaker-unified-studio/latest/adminguide/amazon-bedrock-key-permissions.md b/sagemaker-unified-studio/latest/adminguide/amazon-bedrock-key-permissions.md
index 10a4a681e..881644c7a 100644
--- a//sagemaker-unified-studio/latest/adminguide/amazon-bedrock-key-permissions.md
+++ b//sagemaker-unified-studio/latest/adminguide/amazon-bedrock-key-permissions.md
@@ -8,0 +9,214 @@
+JSON
+    
+
+****
+    
+    
+        {
+        "Version":"2012-10-17",		 	 	 
+        "Statement": [
+            {
+                "Sid": "Allow administrators to manage key",
+                "Effect": "Allow",
+                "Principal": {
+                "AWS": "arn:aws:iam::444455556666:role/ExampleAdminRole"
+                },
+                "Action": [
+                    "kms:Create*",
+                    "kms:Describe*",
+                    "kms:Enable*",
+                    "kms:List*",
+                    "kms:Put*",
+                    "kms:Update*",
+                    "kms:Revoke*",
+                    "kms:Disable*",
+                    "kms:Get*",
+                    "kms:Delete*",
+                    "kms:TagResource",
+                    "kms:UntagResource",
+                    "kms:ScheduleKeyDeletion",
+                    "kms:CancelKeyDeletion",
+                    "kms:RotateKeyOnDemand"
+                ],
+                "Resource": "*"
+            },
+            {
+                "Sid": "Allow administrators and SageMaker domain execution role to encrypt and decrypt DataZone data",
+                "Effect": "Allow",
+                "Principal": {
+                    "AWS": [
+                    "arn:aws:iam::444455556666:role/ExampleAdminRole",
+        "arn:aws:iam::444455556666:role/ExampleDomainUser",
+        "arn:aws:iam::111122223333:role/service-role/AmazonSageMakerDomainExecution"
+                    ]
+                },
+                "Action": [
+                    "kms:CreateGrant",
+                    "kms:Decrypt",
+                    "kms:GenerateDataKey"
+                ],
+                "Resource": "*",
+                "Condition": {
+                    "StringLike": {
+                    "kms:EncryptionContext:aws:datazone:DOMAIN_ID": "domain_id"
+                    }
+                }
+            },
+            {
+                "Sid": "Allow SageMaker provisioning role to encrypt and decrypt Amazon Bedrock resources",
+                "Effect": "Allow",
+                "Principal": {
+                    "AWS": "arn:aws:iam::111122223333:role/service-role/AmazonSageMakerProvisioning-111122223333"
+                },
+                "Action": [
+                    "kms:CreateGrant",
+                    "kms:Decrypt",
+                    "kms:DescribeKey",
+                    "kms:Encrypt",
+                    "kms:GenerateDataKey"
+                ],
+                "Resource": "*"
+            },
+            {
+                "Sid": "Allow SageMaker project roles to describe key",
+                "Effect": "Allow",
+                "Principal": {
+                    "AWS": "arn:aws:iam::111122223333:root"
+                },
+                "Action": "kms:DescribeKey",
+                "Resource": "*",
+                "Condition": {
+                    "Null": {
+                        "aws:PrincipalTag/AmazonDataZoneProject": "false"
+                    }
+                }
+            },
+            {
+                "Sid": "Allow SageMaker project roles to encrypt and decrypt data in Tooling blueprint S3 bucket",
+                "Effect": "Allow",
+                "Principal": {
+                    "AWS": "arn:aws:iam::111122223333:root"
+                },
+                "Action": [
+                    "kms:Decrypt",
+                    "kms:GenerateDataKey"
+                ],
+                "Resource": "*",
+                "Condition": {
+                    "Null": {
+                        "aws:PrincipalTag/AmazonDataZoneProject": "false"
+                    },
+                    "StringLike": {
+                        "kms:ViaService": "s3.*.amazonaws.com"
+                    }
+                }
+            },
+            {
+                "Sid": "Allow SageMaker project roles to encrypt and decrypt Amazon Bedrock secrets",
+                "Effect": "Allow",
+                "Principal": {
+                    "AWS": "arn:aws:iam::111122223333:root"
+                },
+                "Action": [
+                    "kms:Decrypt",
+                    "kms:Encrypt",
+                    "kms:GenerateDataKey"
+                ],
+                "Resource": "*",
+                "Condition": {
+                    "Null": {
+                        "aws:PrincipalTag/AmazonDataZoneProject": "false"
+                    },
+                    "StringLike": {
+                        "kms:ViaService": "secretsmanager.*.amazonaws.com"
+                    },
+                    "ArnLike": {
+                        "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:*:*:secret:amazon-bedrock*"
+                    }
+                }
+            },
+            {
+                "Sid": "Allow SageMaker project roles to encrypt and decrypt Amazon Bedrock data",
+                "Effect": "Allow",
+                "Principal": {
+                    "AWS": "arn:aws:iam::111122223333:root"
+                },
+                "Action": [
+                    "kms:Decrypt",
+                    "kms:GenerateDataKey"
+                ],
+                "Resource": "*",
+                "Condition": {
+                    "Null": {
+                        "aws:PrincipalTag/AmazonDataZoneProject": "false"
+                    },
+                    "ForAnyValue:StringLike": {
+                        "kms:EncryptionContextKeys": [
+                            "aws:bedrock*",
+                            "evaluationJobArn"
+                        ]
+                    }
+                }
+            },
+            {
+                "Sid": "Allow Amazon Bedrock to encrypt and decrypt Amazon Bedrock data",
+                "Effect": "Allow",
+                "Principal": {
+                    "Service": "bedrock.amazonaws.com"
+                },
+                "Action": [
+                    "kms:Decrypt",
+                    "kms:GenerateDataKey"
+                ],
+                "Resource": "*",
+                "Condition": {
+                    "ForAnyValue:StringLike": {
+                        "kms:EncryptionContextKeys": [
+                            "aws:bedrock*",
+                            "evaluationJobArn"
+                        ]
+                    }
+                }
+            },
+            {
+                "Sid": "Allow Amazon Bedrock to create and revoke grants for Amazon Bedrock resources",
+                "Effect": "Allow",
+                "Principal": {
+                    "Service": "bedrock.amazonaws.com"
+                },
+                "Action": [
+                    "kms:CreateGrant",
+                    "kms:ListGrants",
+                    "kms:RevokeGrant"
+                ],
+                "Resource": "*",
+                "Condition": {
+                    "Bool": {
+                        "kms:GrantIsForAWSResource": "true"
+                    }
+                }
+            },
+            {
+                "Sid": "Allow CloudWatch Logs to encrypt and decrypt Amazon Bedrock log groups",
+                "Effect": "Allow",
+                "Principal": {
+                    "Service": "logs.amazonaws.com"