Exemplos de políticas SageMaker baseadas em identidade da Amazon - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplos de políticas SageMaker baseadas em identidade da Amazon

Por padrão, IAM usuários e funções não têm permissão para criar ou modificar SageMaker recursos. Eles também não podem realizar tarefas usando o AWS Management Console, AWS CLI, ou AWS API. Um IAM administrador deve criar IAM políticas que concedam aos usuários e funções permissão para realizar API operações específicas nos recursos especificados de que precisam. O administrador deve então anexar essas políticas aos IAM usuários ou grupos que exigem essas permissões. Para saber como anexar políticas a um IAM usuário ou grupo, consulte Adicionar e remover permissões de IAM identidade na Referência de autorização de serviço.

Para saber como criar uma política IAM baseada em identidade usando esses exemplos de documentos de JSON política, consulte Criação de políticas na JSON guia.

Melhores práticas de política

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir SageMaker recursos em sua conta. Essas ações podem incorrer em custos para o seu Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:

  • Comece com AWS políticas gerenciadas e migrar para permissões com privilégios mínimos — Para começar a conceder permissões para seus usuários e cargas de trabalho, use o AWS políticas gerenciadas que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis em seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo AWS políticas gerenciadas pelo cliente que são específicas para seus casos de uso. Para ter mais informações, consulte AWS políticas gerenciadas ou AWS políticas gerenciadas para funções de trabalho no Guia IAM do usuário.

  • Aplique permissões com privilégios mínimos — Ao definir permissões com IAM políticas, conceda somente as permissões necessárias para realizar uma tarefa. Você faz isso definindo as ações que podem ser executadas em atributos específicos sob condições específicas, também conhecidas como permissões de privilégio mínimo. Para obter mais informações sobre IAM como usar para aplicar permissões, consulte Políticas e permissões IAM no Guia IAM do usuário.

  • Use condições nas IAM políticas para restringir ainda mais o acesso — Você pode adicionar uma condição às suas políticas para limitar o acesso a ações e recursos. Por exemplo, você pode escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usandoSSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de um determinado AWS service (Serviço da AWS), por exemplo, AWS CloudFormation. Para obter mais informações, consulte elementos IAM JSON da política: Condição no Guia IAM do usuário.

  • Use o IAM Access Analyzer para validar suas IAM políticas e garantir permissões seguras e funcionais — o IAM Access Analyzer valida políticas novas e existentes para que as políticas sigam a linguagem da IAM política (JSON) e as melhores práticas. IAM IAMO Access Analyzer fornece mais de 100 verificações de políticas e recomendações práticas para ajudá-lo a criar políticas seguras e funcionais. Para obter mais informações, consulte Validação da política do IAM Access Analyzer no Guia do IAM Usuário.

  • Exigir autenticação multifatorial (MFA) — Se você tiver um cenário que exija IAM usuários ou um usuário root em seu Conta da AWS, ative MFA para obter segurança adicional. Para exigir MFA quando API as operações são chamadas, adicione MFA condições às suas políticas. Para obter mais informações, consulte Configurando o API acesso MFA protegido no Guia do IAMusuário.

Para obter mais informações sobre as melhores práticas emIAM, consulte as melhores práticas de segurança IAM no Guia IAM do usuário.

Usando o SageMaker console

Para acessar o SageMaker console da Amazon, você deve ter um conjunto mínimo de permissões. Essas permissões devem permitir que você liste e visualize detalhes sobre os SageMaker recursos em seu AWS conta. Se você criar uma política baseada em identidade mais restritiva do que as permissões mínimas necessárias, o console não funcionará adequadamente para entidades com essa política. Isso inclui usuários ou funções com essa política.

Para garantir que essas entidades ainda possam usar o SageMaker console, você também deve anexar o seguinte AWS política gerenciada para as entidades. Para obter mais informações, consulte Adicionar permissões a um usuário na Referência de autorização de serviço:

Você não precisa permitir permissões mínimas do console para usuários que estão fazendo chamadas somente para o AWS CLI ou o AWS API. Em vez disso, permita o acesso somente às ações que correspondam à API operação que você está tentando realizar.

Permissões necessárias para usar o SageMaker console da Amazon

A tabela de referência de permissões lista as SageMaker API operações da Amazon e mostra as permissões necessárias para cada operação. Para obter mais informações sobre SageMaker API as operações da Amazon, consulte SageMaker APIPermissões da Amazon: referência de ações, permissões e recursos.

Para usar o SageMaker console da Amazon, você precisa conceder permissões para ações adicionais. Especificamente, o console precisa de permissões que permitam que as ec2 ações exibam sub-redes e VPCs grupos de segurança. Opcionalmente, o console precisa de permissão para criar funções de execução para tarefas como CreateNotebook, CreateTrainingJob e CreateModel. Conceda essas permissões com a seguinte política de permissões:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SageMakerApis", "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*" }, { "Sid": "VpcConfigurationForCreateForms", "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ], "Resource": "*" }, { "Sid":"KmsKeysForCreateForms", "Effect":"Allow", "Action":[ "kms:DescribeKey", "kms:ListAliases" ], "Resource":"*" }, { "Sid": "AccessAwsMarketplaceSubscriptions", "Effect": "Allow", "Action": [ "aws-marketplace:ViewSubscriptions" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "codecommit:BatchGetRepositories", "codecommit:CreateRepository", "codecommit:GetRepository", "codecommit:ListRepositories", "codecommit:ListBranches", "secretsmanager:CreateSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Sid":"ListAndCreateExecutionRoles", "Effect":"Allow", "Action":[ "iam:ListRoles", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy" ], "Resource":"*" }, { "Sid": "DescribeECRMetaData", "Effect": "Allow", "Action": [ "ecr:Describe*" ], "Resource": "*" }, { "Sid": "PassRoleForExecutionRoles", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "sagemaker.amazonaws.com" } } } ] }

Permissões necessárias para usar o console Amazon SageMaker Ground Truth

Para usar o console do Amazon SageMaker Ground Truth, você precisa conceder permissões para recursos adicionais. Especificamente, o console precisa de permissões para:

  • a AWS Marketplace para ver assinaturas,

  • Operações do Amazon Cognito para gerenciar sua força de trabalho privada

  • Ações do Amazon S3 para acessar seus arquivos de entrada e saída

  • AWS Lambda ações para listar e invocar funções

Conceda essas permissões com a seguinte política de permissões:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "GroundTruthConsole", "Effect": "Allow", "Action": [ "aws-marketplace:DescribeListings", "aws-marketplace:ViewSubscriptions", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListGroups", "cognito-idp:ListIdentityProviders", "cognito-idp:ListUsers", "cognito-idp:ListUsersInGroup", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient", "groundtruthlabeling:DescribeConsoleJob", "groundtruthlabeling:ListDatasetObjects", "groundtruthlabeling:RunFilterOrSampleManifestJob", "groundtruthlabeling:RunGenerateManifestByCrawlingJob", "lambda:InvokeFunction", "lambda:ListFunctions", "s3:GetObject", "s3:PutObject", "s3:SelectObjectContent" ], "Resource": "*" } ] }

Permissões necessárias para usar o console Amazon Augmented AI (Preview)

Para usar o console do Augmented AI, é necessário conceder permissões a recursos adicionais. Conceda essas permissões com a seguinte política de permissões:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sagemaker:*Algorithm", "sagemaker:*Algorithms", "sagemaker:*App", "sagemaker:*Apps", "sagemaker:*AutoMLJob", "sagemaker:*AutoMLJobs", "sagemaker:*CodeRepositories", "sagemaker:*CodeRepository", "sagemaker:*CompilationJob", "sagemaker:*CompilationJobs", "sagemaker:*Endpoint", "sagemaker:*EndpointConfig", "sagemaker:*EndpointConfigs", "sagemaker:*EndpointWeightsAndCapacities", "sagemaker:*Endpoints", "sagemaker:*Environment", "sagemaker:*EnvironmentVersion", "sagemaker:*EnvironmentVersions", "sagemaker:*Environments", "sagemaker:*Experiment", "sagemaker:*Experiments", "sagemaker:*FlowDefinitions", "sagemaker:*HumanLoop", "sagemaker:*HumanLoops", "sagemaker:*HumanTaskUi", "sagemaker:*HumanTaskUis", "sagemaker:*HyperParameterTuningJob", "sagemaker:*HyperParameterTuningJobs", "sagemaker:*LabelingJob", "sagemaker:*LabelingJobs", "sagemaker:*Metrics", "sagemaker:*Model", "sagemaker:*ModelPackage", "sagemaker:*ModelPackages", "sagemaker:*Models", "sagemaker:*MonitoringExecutions", "sagemaker:*MonitoringSchedule", "sagemaker:*MonitoringSchedules", "sagemaker:*NotebookInstance", "sagemaker:*NotebookInstanceLifecycleConfig", "sagemaker:*NotebookInstanceLifecycleConfigs", "sagemaker:*NotebookInstanceUrl", "sagemaker:*NotebookInstances", "sagemaker:*ProcessingJob", "sagemaker:*ProcessingJobs", "sagemaker:*RenderUiTemplate", "sagemaker:*Search", "sagemaker:*SearchSuggestions", "sagemaker:*Tags", "sagemaker:*TrainingJob", "sagemaker:*TrainingJobs", "sagemaker:*TransformJob", "sagemaker:*TransformJobs", "sagemaker:*Trial", "sagemaker:*TrialComponent", "sagemaker:*TrialComponents", "sagemaker:*Trials", "sagemaker:*Workteam", "sagemaker:*Workteams" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "sagemaker:*FlowDefinition" ], "Resource": "*", "Condition": { "StringEqualsIfExists": { "sagemaker:WorkteamType": [ "private-crowd", "vendor-crowd" ] } } }, { "Effect": "Allow", "Action": [ "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:PutScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:RegisterScalableTarget", "aws-marketplace:ViewSubscriptions", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:PutMetricAlarm", "cloudwatch:PutMetricData", "codecommit:BatchGetRepositories", "codecommit:CreateRepository", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:ListRepositories", "cognito-idp:AdminAddUserToGroup", "cognito-idp:AdminCreateUser", "cognito-idp:AdminDeleteUser", "cognito-idp:AdminDisableUser", "cognito-idp:AdminEnableUser", "cognito-idp:AdminRemoveUserFromGroup", "cognito-idp:CreateGroup", "cognito-idp:CreateUserPool", "cognito-idp:CreateUserPoolClient", "cognito-idp:CreateUserPoolDomain", "cognito-idp:DescribeUserPool", "cognito-idp:DescribeUserPoolClient", "cognito-idp:ListGroups", "cognito-idp:ListIdentityProviders", "cognito-idp:ListUserPoolClients", "cognito-idp:ListUserPools", "cognito-idp:ListUsers", "cognito-idp:ListUsersInGroup", "cognito-idp:UpdateUserPool", "cognito-idp:UpdateUserPoolClient", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:CreateRepository", "ecr:Describe*", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "elastic-inference:Connect", "elasticfilesystem:DescribeFileSystems", "elasticfilesystem:DescribeMountTargets", "fsx:DescribeFileSystems", "glue:CreateJob", "glue:DeleteJob", "glue:GetJob", "glue:GetJobRun", "glue:GetJobRuns", "glue:GetJobs", "glue:ResetJobBookmark", "glue:StartJobRun", "glue:UpdateJob", "groundtruthlabeling:*", "iam:ListRoles", "kms:DescribeKey", "kms:ListAliases", "lambda:ListFunctions", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents", "logs:PutLogEvents", "sns:ListTopics" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:DeleteLogDelivery", "logs:DescribeResourcePolicies", "logs:GetLogDelivery", "logs:ListLogDeliveries", "logs:PutResourcePolicy", "logs:UpdateLogDelivery" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:CompleteLayerUpload", "ecr:BatchDeleteImage", "ecr:UploadLayerPart", "ecr:DeleteRepositoryPolicy", "ecr:InitiateLayerUpload", "ecr:DeleteRepository", "ecr:PutImage" ], "Resource": "arn:aws:ecr:*:*:repository/*sagemaker*" }, { "Effect": "Allow", "Action": [ "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:*:*:*sagemaker*", "arn:aws:codecommit:*:*:*SageMaker*", "arn:aws:codecommit:*:*:*Sagemaker*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:ListSecrets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:CreateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:AmazonSageMaker-*" ] }, { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue" ], "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "robomaker:CreateSimulationApplication", "robomaker:DescribeSimulationApplication", "robomaker:DeleteSimulationApplication" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "robomaker:CreateSimulationJob", "robomaker:DescribeSimulationJob", "robomaker:CancelSimulationJob" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:GetBucketCors", "s3:PutBucketCors" ], "Resource": [ "arn:aws:s3:::*SageMaker*", "arn:aws:s3:::*Sagemaker*", "arn:aws:s3:::*sagemaker*", "arn:aws:s3:::*aws-glue*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketLocation", "s3:ListBucket", "s3:ListAllMyBuckets" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "*", "Condition": { "StringEqualsIgnoreCase": { "s3:ExistingObjectTag/SageMaker": "true" } } }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:*:*:function:*SageMaker*", "arn:aws:lambda:*:*:function:*sagemaker*", "arn:aws:lambda:*:*:function:*Sagemaker*", "arn:aws:lambda:*:*:function:*LabelingFunction*" ] }, { "Action": "iam:CreateServiceLinkedRole", "Effect": "Allow", "Resource": "arn:aws:iam::*:role/aws-service-role/sagemaker.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_SageMakerEndpoint", "Condition": { "StringLike": { "iam:AWSServiceName": "sagemaker.application-autoscaling.amazonaws.com" } } }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "robomaker.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "sns:Subscribe", "sns:CreateTopic" ], "Resource": [ "arn:aws:sns:*:*:*SageMaker*", "arn:aws:sns:*:*:*Sagemaker*", "arn:aws:sns:*:*:*sagemaker*" ] }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com", "glue.amazonaws.com", "robomaker.amazonaws.com", "states.amazonaws.com" ] } } } ] }

Permitir que usuários visualizem suas próprias permissões

Este exemplo mostra como você pode criar uma política que permita IAM aos usuários visualizar as políticas embutidas e gerenciadas que estão anexadas à identidade do usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando o AWS CLI ou AWS API.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Controle a criação de SageMaker recursos com chaves de condição

Controle o acesso refinado para permitir a criação de SageMaker recursos usando chaves de condição SageMaker específicas. Para obter informações sobre o uso de chaves de condição em IAM políticas, consulte Elementos de IAM JSON política: condição no Guia IAM do usuário.

As chaves de condição, as API ações relacionadas e os links para a documentação relevante estão listados em Chaves de condição SageMaker na Referência de Autorização de Serviço.

Os exemplos a seguir mostram como usar as chaves de SageMaker condição para controlar o acesso.

Controle o acesso aos SageMaker recursos usando as chaves de condição do sistema de arquivos

SageMaker o treinamento fornece uma infraestrutura segura para a execução do algoritmo de treinamento, mas, em alguns casos, você pode querer uma defesa mais aprofundada. Por exemplo, você minimiza o risco de execução de código não confiável em seu algoritmo ou tem mandatos de segurança específicos em sua organização. Para esses cenários, você pode usar as chaves de condição específicas do serviço no elemento Condição de uma IAM política para limitar o usuário a:

  • sistemas de arquivos específicos

  • diretórios

  • modos de acesso (leitura-gravação, somente leitura)

  • security groups

Restringir um IAM usuário a diretórios e modos de acesso específicos

A política a seguir restringe o usuário aos /sagemaker/xgboost-dm/validation diretórios /sagemaker/xgboost-dm/train e de um sistema de EFS arquivos ro (somente leitura): AccessMode

nota

Quando um diretório é permitido, todos os subdiretórios também podem ser acessados pelo algoritmo de treinamento. POSIXas permissões são ignoradas.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToElasticFileSystem", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "EFS", "sagemaker:FileSystemDirectoryPath": "/sagemaker/xgboost-dm/train" } } }, { "Sid": "AccessToElasticFileSystemValidation", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "EFS", "sagemaker:FileSystemDirectoryPath": "/sagemaker/xgboost-dm/validation" } } } ] }

Restringir um usuário a um sistema de arquivos específico

Para evitar que um algoritmo malicioso usando um cliente de espaço de usuário acesse qualquer sistema de arquivos diretamente na sua conta, você pode restringir o tráfego de rede. Para restringir esse tráfego, permita a entrada somente de um grupo de segurança específico. No exemplo a seguir, o usuário do só pode usar o grupo de segurança especificado para acessar o sistema de arquivos:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToLustreFileSystem", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:FileSystemId": "fs-12345678", "sagemaker:FileSystemAccessMode": "ro", "sagemaker:FileSystemType": "FSxLustre", "sagemaker:FileSystemDirectoryPath": "/fsx/sagemaker/xgboost/train" }, "ForAllValues:StringEquals": { "sagemaker:VpcSecurityGroupIds": [ "sg-12345678" ] } } } ] }

Este exemplo pode restringir um algoritmo a um sistema de arquivos específico. No entanto, isso não impede que um algoritmo acesse qualquer diretório dentro desse sistema de arquivos usando o cliente de espaço do usuário. Para atenuar isso:

  • Verifique se o sistema de arquivos contém apenas dados que você permite que usuários do acessem

  • Crie uma IAM função que restrinja seus usuários ao lançamento de trabalhos de treinamento com algoritmos de repositórios aprovados ECR

Para obter mais informações sobre como usar funções com SageMaker, consulte SageMaker Funções.

Restrinja o treinamento a um específico VPC

Restringir um AWS usuário para criar trabalhos de treinamento de dentro de uma AmazonVPC. Quando um trabalho de treinamento é criado em umVPC, use registros de VPC fluxo para monitorar todo o tráfego de e para o cluster de treinamento. Para obter informações sobre o uso VPC de registros de fluxo, consulte Logs de VPC fluxo no Guia do usuário da Amazon Virtual Private Cloud.

A política a seguir impõe que um trabalho de treinamento seja criado por um usuário ligando CreateTrainingJobde dentro de umVPC:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFromVpc", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "sagemaker:VpcSubnets": ["subnet-a1234"], "sagemaker:VpcSecurityGroupIds": ["sg12345", "sg-67890"] }, "Null": { "sagemaker:VpcSubnets": "false", "sagemaker:VpcSecurityGroupIds": "false" } } } ] }

Restrinja o acesso aos tipos de força de trabalho para trabalhos de rotulagem da Ground Truth e fluxos de trabalho do Amazon A2I Human Review

As equipes de trabalho do Amazon SageMaker Ground Truth e do Amazon Augmented AI se dividem em um dos três tipos de força de trabalho:

  • público (com o Amazon Mechanical Turk)

  • privado

  • fornecedor

Você pode restringir o acesso do usuário a uma equipe de trabalho específica usando um desses tipos ou a equipe de trabalhoARN. Para fazer isso, use as teclas de sagemaker:WorkteamArn condição sagemaker:WorkteamType e/ou. Para a chave de condição sagemaker:WorkteamType, use operadores de condição de string. Para a chave de sagemaker:WorkteamArn condição, use os operadores de condição Amazon Resource Name (ARN). Se o usuário tentar criar um trabalho de rotulagem com uma equipe de trabalho restrita, SageMaker retornará um erro de acesso negado.

As políticas a seguir mostram maneiras diferentes de usar as chaves de sagemaker:WorkteamArn condição sagemaker:WorkteamType e com operadores de condição apropriados e valores de condição válidos.

O exemplo a seguir usa a chave de condição sagemaker:WorkteamType com o operador de condição StringEquals para restringir o acesso a uma equipe de trabalho pública. Ele aceita valores de condição no seguinte formato:workforcetype-crowd, onde workforcetype pode ser igual public aprivate, ouvendor.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:WorkteamType": "public-crowd" } } } ] }

As políticas a seguir mostram como restringir o acesso a uma equipe de trabalho pública usando a chave de condição sagemaker:WorkteamArn. O primeiro mostra como usá-lo com uma IAM variante regex válida da equipe de trabalho ARN e do operador de ArnLike condição. O segundo mostra como usá-lo com o operador de ArnEquals condição e a equipe de trabalhoARN.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "ArnLike": { "sagemaker:WorkteamArn": "arn:aws:sagemaker:*:*:workteam/public-crowd/*" } } } ] }
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RestrictWorkteamType", "Effect": "Deny", "Action": "sagemaker:CreateLabelingJob", "Resource": "*", "Condition": { "ArnEquals": { "sagemaker:WorkteamArn": "arn:aws:sagemaker:us-west-2:394669845002:workteam/public-crowd/default" } } } ] }

Imponha a criptografia dos dados de entrada

A política a seguir restringe que um usuário especifique um AWS KMS chave para criptografar os dados de entrada usando a chave de sagemaker:VolumeKmsKey condição ao criar:

  • treinamento

  • ajuste de hiperparâmetros

  • trabalhos de etiquetagem

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceEncryption", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:CreateLabelingJob", "sagemaker:CreateFlowDefiniton" ], "Resource": "*", "Condition": { "ArnEquals": { "sagemaker:VolumeKmsKey": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } } } ] }

Aplique a criptografia do volume de armazenamento da instância do notebook

A política a seguir restringe que um usuário especifique um AWS KMS chave para criptografar o volume de armazenamento conectado usando a chave de sagemaker:VolumeKmsKey condição quando:

  • criando uma instância de notebook

  • atualizando uma instância do notebook

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceEncryption", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance" ], "Resource": "*", "Condition": { "ArnLike": { "sagemaker:VolumeKmsKey": "*key/volume-kms-key-12345" } } } ] }

Imponha o isolamento da rede para trabalhos de treinamento

A política a seguir restringe um usuário para habilitar o isolamento de rede ao criar trabalhos de treinamento usando a chave de condição sagemaker:NetworkIsolation:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceIsolation", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "Bool": { "sagemaker:NetworkIsolation": "true" } } } ] }

Imponha um tipo de instância específico para trabalhos de treinamento

A política a seguir restringe um usuário a usar um tipo de instância específico ao criar trabalhos de treinamento usando a chave de condição sagemaker:InstanceTypes:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceInstanceType", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:CreateHyperParameterTuningJob" ], "Resource": "*", "Condition": { "ForAllValues:StringLike": { "sagemaker:InstanceTypes": ["ml.c5.*"] } } } ] }

Aplique um acelerador de EI específico para trabalhos de treinamento

A política a seguir restringe o usuário a usar um acelerador de inferência elástica (EI) específico, se um acelerador for fornecido, usando a sagemaker:AcceleratorTypes chave de condição quando:

  • criação de instâncias de notebook

  • atualizando instâncias do notebook

  • criando configurações de endpoint

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceAcceleratorType", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance", "sagemaker:UpdateNotebookInstance", "sagemaker:CreateEndpointConfig" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "sagemaker:AcceleratorTypes": ["ml.eia1.medium"] } } } ] }

Imponha a desativação do acesso à Internet e do acesso root para criar instâncias de notebook

Você pode desabilitar o acesso à Internet e o acesso raiz a instâncias de caderno para ajudar a torná-las mais seguras. Para obter informações sobre como controlar o acesso root a uma instância do notebook, consulteControle o acesso root a uma instância do SageMaker notebook. Para obter informações sobre como desativar o acesso à Internet para uma instância de notebook, consulteConectar uma instância de notebook em um VPC a recursos externos.

A política a seguir requer que um usuário desative o acesso à rede ao criar uma instância e desative o acesso raiz ao criar ou atualizar uma instância de caderno.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LockDownCreateNotebookInstance", "Effect": "Allow", "Action": [ "sagemaker:CreateNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:DirectInternetAccess": "Disabled", "sagemaker:RootAccess": "Disabled" }, "Null": { "sagemaker:VpcSubnets": "false", "sagemaker:VpcSecurityGroupIds": "false" } } }, { "Sid": "LockDownUpdateNotebookInstance", "Effect": "Allow", "Action": [ "sagemaker:UpdateNotebookInstance" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:RootAccess": "Disabled" } } } ] }

Controle o acesso ao SageMaker API usando políticas baseadas em identidade

Para controlar o acesso a SageMaker API chamadas e chamadas para endpoints SageMaker hospedados, use políticas baseadas em identidadeIAM.

Restrinja o acesso SageMaker API e o tempo de execução às chamadas de dentro do seu VPC

Se você configurar um endpoint de interface em seuVPC, indivíduos de fora do VPC podem se conectar SageMaker API e executar o tempo de execução pela Internet. Para evitar isso, anexe uma IAM política que restrinja o acesso às chamadas provenientes do. VPC Essas chamadas devem ser restritas a todos os usuários e grupos que têm acesso aos seus SageMaker recursos. Para obter informações sobre como criar um endpoint de VPC interface para o ambiente SageMaker API de execução, consulteConnect to SageMaker Within your VPC.

Importante

Se você aplicar uma IAM política semelhante a uma das seguintes, os usuários não poderão acessar o especificado SageMaker APIs por meio do console.

Para restringir o acesso somente às conexões feitas de dentro do seuVPC, crie um AWS Identity and Access Management política que restringe o acesso. Esse acesso deve ser restrito apenas às chamadas que vêm de dentro do seuVPC. Em seguida, adicione essa política a cada AWS Identity and Access Management usuário, grupo ou função usado para acessar o tempo de execução SageMaker API ou.

nota

Essa política permite conexões somente para chamadores em uma sub-rede na qual você criou um endpoint de interface.

{ "Id": "api-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableAPIAccess", "Effect": "Allow", "Action": [ "sagemaker:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-111bbaaa" } } } ] }

Para restringir o acesso somente API às chamadas feitas usando o endpoint da interface, use a chave de aws:SourceVpce condição em vez deaws:SourceVpc:

{ "Id": "api-example-1", "Version": "2012-10-17", "Statement": [ { "Sid": "EnableAPIAccess", "Effect": "Allow", "Action": [ "sagemaker:CreatePresignedNotebookInstanceUrl" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpce": [ "vpce-111bbccc", "vpce-111bbddd" ] } } } ] }

Limite o acesso SageMaker API e o tempo de execução das chamadas por endereço IP

Você pode permitir o acesso a SageMaker API chamadas e invocações de tempo de execução somente a partir de endereços IP em uma lista especificada por você. Para fazer isso, crie uma IAM política que negue o acesso ao, a API menos que a chamada venha de um endereço IP na lista. Em seguida, anexe essa política a cada AWS Identity and Access Management usuário, grupo ou função usado para acessar o tempo de execução API ou. Para obter informações sobre a criação de IAM políticas, consulte Criação de IAM políticas no AWS Identity and Access Management Guia do usuário.

Para especificar a lista de endereços IP que têm acesso à API chamada, use:

  • IpAddressoperador de condição

  • aws:SourceIPchave de contexto de condição

Para obter informações sobre operadores de IAM condição, consulte Elementos de IAM JSON política: operadores de condição no AWS Identity and Access Management Guia do usuário. Para obter informações sobre chaves de contexto de IAM condição, consulte AWS Chaves de contexto de condição global.

Por exemplo, a política a seguir permite acesso a CreateTrainingJob somente a partir de endereços IP nos intervalos 192.0.2.0 - 192.0.2.255 e 203.0.113.0 - 203.0.113.255:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:CreateTrainingJob", "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] } } } ] }

Limitar o acesso a uma instância do notebook por endereço IP

Você pode permitir o acesso a uma instância do notebook somente a partir de endereços IP em uma lista especificada por você. Para fazer isso, crie uma IAM política que negue o acesso, a CreatePresignedNotebookInstanceUrlmenos que a chamada venha de um endereço IP na lista. Em seguida, anexe essa política a cada AWS Identity and Access Management usuário, grupo ou função usada para acessar a instância do notebook. Para obter informações sobre a criação de IAM políticas, consulte Criação de IAM políticas no AWS Identity and Access Management Guia do usuário.

Para especificar a lista de endereços IP que você deseja que tenham acesso à instância do notebook, use:

  • IpAddressoperador de condição

  • aws:SourceIPchave de contexto de condição

Para obter informações sobre operadores de IAM condição, consulte Elementos de IAM JSON política: operadores de condição no AWS Identity and Access Management Guia do usuário. Para obter informações sobre chaves de contexto de IAM condição, consulte AWS Chaves de contexto de condição global.

Por exemplo, a política a seguir permite acesso a uma instância de caderno somente a partir de endereços IP nos intervalos 192.0.2.0-192.0.2.255 e 203.0.113.0-203.0.113.255:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:CreatePresignedNotebookInstanceUrl", "Resource": "*", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] } } } ] }

A política restringe o acesso à chamada para CreatePresignedNotebookInstanceUrl e para a URL que a chamada retorna. A política também restringe o acesso à abertura de uma instâncias de bloco de anotações no console. Ela é aplicada para cada HTTP solicitação e WebSocket quadro que tenta se conectar à instância do notebook.

nota

Usar esse método para filtrar por endereço IP é incompatível ao se conectar SageMaker por meio de um endpoint de VPC interface. . Para obter informações sobre como restringir o acesso a uma instância do notebook ao se conectar por meio de um endpoint de VPC interface, consulte. Conecte-se a uma instância de notebook por meio de um endpoint de VPC interface

Controle o acesso aos SageMaker recursos usando tags

Especifique tags em uma IAM política para controlar o acesso a grupos de SageMaker recursos. Use tags para implementar o controle de acesso baseado em atributos (ABAC). O uso de tags ajuda você a particionar o acesso aos recursos para grupos específicos de usuários. Você pode ter uma equipe com acesso a um grupo de recursos e uma equipe diferente com acesso a outro conjunto de recursos. Você pode fornecer ResourceTag condições nas IAM políticas para fornecer acesso a cada grupo.

nota

As políticas baseadas em tags não funcionam para restringir as seguintes API chamadas:

  • DeleteImageVersion

  • DescribeImageVersion

  • ListAlgorithms

  • ListCodeRepositories

  • ListCompilationJobs

  • ListEndpointConfigs

  • ListEndpoints

  • ListFlowDefinitions

  • ListHumanTaskUis

  • ListHyperparameterTuningJobs

  • ListLabelingJobs

  • ListLabelingJobsForWorkteam

  • ListModelPackages

  • ListModels

  • ListNotebookInstanceLifecycleConfigs

  • ListNotebookInstances

  • ListSubscribedWorkteams

  • ListTags

  • ListProcessingJobs

  • ListTrainingJobs

  • ListTrainingJobsForHyperParameterTuningJob

  • ListTransformJobs

  • ListWorkteams

  • Pesquisar

Um exemplo simples pode ajudar você a entender como usar tags para particionar recursos. Suponha que você tenha definido dois IAM grupos diferentes, nomeados DevTeam1 eDevTeam2, em seu AWS conta. Você também criou 10 instâncias de caderno. Você está usando 5 das instâncias de caderno para um projeto. Você está usando os outros 5 para um segundo projeto. Você pode DevTeam1 fornecer permissões para fazer API chamadas nas instâncias do notebook que você está usando para o primeiro projeto. Você pode fornecer DevTeam2 para fazer API chamadas em instâncias de notebook usadas para o segundo projeto.

O procedimento a seguir fornece um exemplo simples que ajuda você a entender o conceito de adicionar tags. Você pode usá-lo para implementar a solução descrita no parágrafo anterior.

Para controlar o acesso às API chamadas (exemplo)
  1. Adicione uma tag com a chave Project e o valor A às instâncias de caderno usadas no primeiro projeto. Para obter informações sobre como adicionar tags aos SageMaker recursos, consulte AddTags.

  2. Adicione uma tag com a chave Project e o valor B às instâncias de caderno usadas no segundo projeto.

  3. Crie uma IAM política com uma ResourceTag condição que negue o acesso às instâncias do notebook usadas para o segundo projeto. Em seguida, anexe essa política DevTeam1 a. O exemplo de política a seguir nega todas as API chamadas em qualquer instância do notebook com uma tag com uma chave de Project e um valor deB:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:*", "Resource": "*" }, { "Effect": "Deny", "Action": "sagemaker:*", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/Project": "B" } } }, { "Effect": "Deny", "Action": [ "sagemaker:AddTags", "sagemaker:DeleteTags" ], "Resource": "*" } ] }

    Para obter informações sobre como criar IAM políticas e anexá-las a identidades, consulte Controlando o acesso usando políticas no AWS Identity and Access Management Guia do usuário.

  4. Crie uma IAM política com uma ResourceTag condição que negue o acesso às instâncias do notebook usadas no primeiro projeto. Em seguida, anexe essa política DevTeam2 a. O exemplo de política a seguir nega todas as API chamadas em qualquer instância do notebook com uma tag com uma chave de Project e um valor deA:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sagemaker:*", "Resource": "*" }, { "Effect": "Deny", "Action": "sagemaker:*", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:ResourceTag/Project": "A" } } }, { "Effect": "Deny", "Action": [ "sagemaker:AddTags", "sagemaker:DeleteTags" ], "Resource": "*" } ] }

Forneça permissões para marcar recursos SageMaker

As tags são rótulos de metadados que você pode anexar a determinados AWS recursos. Uma tag consiste em um par de valores-chave que fornece uma maneira flexível de anotar recursos com atributos de metadados para vários casos de uso de marcação, incluindo:

Eles podem ser usados em permissões e políticas, cotas de serviços e integrações com outros AWS serviços. As tags podem ser definidas pelo usuário ou AWS gerado ao criar recursos. Isso depende se o usuário especifica manualmente as tags personalizadas ou uma AWS o serviço gera automaticamente uma tag.

  • Tags definidas pelo usuário em SageMaker: Os usuários podem adicionar tags ao criar SageMaker recursos usando SageMaker SDKs, o AWS CLI CLI, SageMaker APIs, SageMaker Console ou AWS CloudFormation modelos.

    nota

    As tags definidas pelo usuário podem ser substituídas se um recurso for atualizado posteriormente e o valor da tag for alterado ou substituído. Por exemplo, um trabalho de treinamento criado com {Equipe: A} pode ser atualizado incorretamente e remarcado como {Equipe: B}. Como resultado, as permissões permitidas podem ser atribuídas incorretamente. Portanto, deve-se tomar cuidado ao permitir que usuários ou grupos adicionem tags, pois eles podem substituir os valores de tags existentes. É uma prática recomendada definir rigorosamente as permissões de tags e usar IAM as condições para controlar as habilidades de marcação.

  • AWS tags geradas em SageMaker: marca SageMaker automaticamente determinados recursos que ele cria. Por exemplo, o Studio e o Studio Classic atribuem automaticamente a sagemaker:domain-arn tag aos SageMaker recursos que eles criam. A marcação de novos recursos com o domínio ARN fornece rastreabilidade de como SageMaker os recursos, como trabalhos de treinamento, modelos e endpoints, são originados. Para um controle e rastreamento mais precisos, novos recursos recebem tags adicionais, como:

    • sagemaker:user-profile-arn- O ARN do perfil do usuário que criou o recurso. Isso permite rastrear recursos criados por usuários específicos.

    • sagemaker:space-arn- O ARN do espaço no qual o recurso foi criado. Isso permite agrupar e isolar recursos por espaço.

    nota

    AWS as tags geradas não podem ser alteradas pelos usuários.

Para obter informações gerais sobre marcação AWS recursos e melhores práticas, consulte Como marcar seu AWS recursos. Para obter informações sobre os principais casos de uso de marcação, consulte Casos de uso de marcação.

Conceda permissão para adicionar tags ao criar SageMaker recursos

Você pode permitir que os usuários (tags definidas pelo usuário) ou o Studio e o Studio Classic (AWS tags geradas) para adicionar tags em novos SageMaker recursos no momento da criação. Para fazer isso, suas IAM permissões devem incluir:

  • A permissão básica de SageMaker criação para esse tipo de recurso.

  • A sagemaker:AddTags permissão.

Por exemplo, permitir que um usuário crie um trabalho de SageMaker treinamento e o marque exigiria a concessão de permissões para sagemaker:CreateTrainingJob e. sagemaker:AddTags

Importante

IAMPolíticas personalizadas que permitem que o Amazon SageMaker Studio ou o Amazon SageMaker Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma IAM política permitir que o Studio e o Studio Classic criem recursos, mas não permita a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos.

AWS Políticas gerenciadas para a Amazon SageMakerque dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Os administradores atribuem essas IAM permissões a:

  • AWS IAMfunções atribuídas ao usuário para tags definidas pelo usuário

  • a função de execução usada pelo Studio ou pelo Studio Classic para AWS tags geradas

Para obter instruções sobre como criar e aplicar IAM políticas personalizadas, consulte Criação de IAM políticas (console).

nota

A lista de operações de criação de SageMaker recursos pode ser encontrada na SageMaker APIdocumentação pesquisando ações que começam comCreate. Essas ações de criação, como CreateTrainingJob eCreateEndpoint, são as operações que criam novos SageMaker recursos.

Adicione permissões de tag a determinadas ações de criação

Você concede a sagemaker:AddTags permissão com restrições anexando uma IAM política adicional à política original de criação de recursos. O exemplo de política a seguir permitesagemaker:AddTags, mas a restringe, somente a determinadas ações SageMaker de criação de recursos, comoCreateTrainingJob.

{ "Sid": "AllowAddTagsForCreateOperations", "Effect": "Allow", "Action": [ "sagemaker:AddTags" ], "Resource": "*", "Condition": { "StringEquals": { "sagemaker:TaggingAction": "CreateTrainingJob" } } }

A condição da política limita sagemaker:AddTags a ser usada junto com ações de criação específicas. Nessa abordagem, a política de permissão de criação permanece intacta, enquanto uma política adicional fornece sagemaker:AddTags acesso restrito. A condição impede a sagemaker:AddTags permissão geral ao limitá-la às ações de criação que precisam ser marcadas. Isso implementa o menor privilégio, sagemaker:AddTags permitindo-o apenas para casos de uso específicos de criação SageMaker de recursos.

Exemplo: permitir permissão de tag globalmente e restringir ações de criação a um domínio

Neste exemplo de IAM política personalizada, as duas primeiras declarações ilustram o uso de tags para rastrear a criação de recursos. Ele permite a sagemaker:CreateModel ação em todos os recursos e a marcação desses recursos quando essa ação é usada. A terceira declaração demonstra como os valores das tags podem ser usados para controlar as operações nos recursos. Nesse caso, impede a criação de SageMaker recursos marcados com um domínio específicoARN, restringindo o acesso com base no valor da tag.

Em particular:

  • A primeira instrução permite a CreateModel ação em qualquer recurso (*).

  • A segunda declaração permite a sagemaker:AddTags ação, mas somente quando a chave de sagemaker:TaggingAction condição é igualCreateModel. Isso restringe a sagemaker:AddTags ação somente quando ela está sendo usada para marcar um modelo recém-criado.

  • A terceira declaração nega qualquer ação de SageMaker criação (Create*) em qualquer recurso (*), mas somente quando o recurso tem uma tag sagemaker:domain-arn igual a um domínio específicoARN,domain-arn.

{ "Statement":[ { "Effect":"Allow", "Action":[ "sagemaker:CreateModel" ], "Resource":"*" }, { "Effect":"Allow", "Action":[ "sagemaker:AddTags" ], "Resource":"*", "Condition":{ "String":{ "sagemaker:TaggingAction":[ "CreateModel" ] } } }, { "Sid":"IsolateDomain", "Effect":"Deny", "Resource":"*", "Action":[ "sagemaker:Create*" ], "Condition":{ "StringEquals":{ "aws:ResourceTag/sagemaker:domain-arn":"domain-arn" } } } ] }

Limite o acesso a recursos pesquisáveis com condições de visibilidade

Use condições de visibilidade para limitar o acesso de seus usuários a recursos marcados específicos em um AWS conta. Seus usuários podem acessar somente os recursos para os quais eles têm permissões. Quando seus usuários estão pesquisando em seus recursos, eles podem limitar os resultados da pesquisa a recursos específicos.

Talvez você queira que seus usuários vejam e interajam apenas com os recursos associados a domínios específicos do Amazon SageMaker Studio ou do Amazon SageMaker Studio Classic. Você pode usar condições de visibilidade para limitar o acesso deles a um único domínio ou a vários domínios.

{ "Sid": "SageMakerApis", "Effect": "Allow", "Action": "sagemaker:Search", "Resource": "*", "Condition": { "StringEquals": { "sagemaker:SearchVisibilityCondition/Tags.sagemaker:example-domain-arn/EqualsIfExists": "arn:aws:sagemaker:Região da AWS:111122223333:domain/example-domain-1", "sagemaker:SearchVisibilityCondition/Tags.sagemaker:example-domain-arn/EqualsIfExists": "arn:aws:sagemaker:Região da AWS:111122223333:domain/example-domain-2" } } }

O formato geral de uma condição de visibilidade é"sagemaker:SearchVisibilityCondition/Tags.key": "value". Você pode fornecer o par de valores-chave para qualquer recurso marcado.

{ "MaxResults": number, "NextToken": "string", "Resource": "string", # Required Parameter "SearchExpression": { "Filters": [ { "Name": "string", "Operator": "string", "Value": "string" } ], "NestedFilters": [ { "Filters": [ { "Name": "string", "Operator": "string", "Value": "string" } ], "NestedPropertyName": "string" } ], "Operator": "string", "SubExpressions": [ "SearchExpression" ] }, "IsCrossAccount": "string", "VisibilityConditions" : [ List of conditions for visibility {"Key": "Tags.sagemaker:example-domain-arn", "Value": "arn:aws:sagemaker:Região da AWS:111122223333:domain/example-domain-1"}, {"Key": "Tags.sagemaker:example-domain-arn", "Value": "arn:aws:sagemaker:Região da AWS:111122223333:domain/example-domain-2"} ] ], "SortBy": "string", "SortOrder": "string" }

A condição de visibilidade interna usa a mesma "sagemaker:SearchVisibilityCondition/Tags.key": "value" formatação especificada na política. Seus usuários podem especificar os pares de valores-chave usados para qualquer recurso marcado.

Se um usuário incluir o VisibilityConditions parâmetro em sua solicitação de pesquisa, mas a política de acesso que se aplica a esse usuário não contiver nenhuma chave de condição correspondente especificadaVisibilityConditions, a Search solicitação ainda será permitida e será executada.

Se um VisibilityConditions parâmetro não for especificado na API solicitação de pesquisa do usuário, mas a política de acesso que se aplica a esse usuário contiver chaves de condição relacionadas aVisibilityConditions, a Search solicitação desse usuário será negada.