

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esempi di SageMaker policy basate sull'identità di Amazon AI
<a name="security_iam_id-based-policy-examples"></a>

Per impostazione predefinita, gli utenti e i ruoli IAM non sono autorizzati a creare o modificare risorse SageMaker AI. Inoltre, non possono eseguire attività utilizzando l' AWS API Console di gestione AWS AWS CLI, o. Un amministratore IAM deve creare policy IAM che concedono a utenti e ruoli l'autorizzazione per eseguire operazioni API specifiche sulle risorse specificate di cui hanno bisogno. L'amministratore deve quindi collegare queste policy a utenti o IAM che richiedono tali autorizzazioni. Per informazioni su come collegare le policy a un utente o gruppo IAM, consulta [Aggiunta e rimozione delle autorizzazioni di identità IAM](https://docs.aws.amazon.com/service-authorization/latest/reference/access_policies_manage-attach-detach.html) in *Informazioni di riferimento sull’autorizzazione del servizio*.

Per informazioni su come creare una policy IAM basata sull’identità utilizzando questi documenti di policy JSON di esempio, consulta [Creazione di policy nella scheda JSON](https://docs.aws.amazon.com/service-authorization/latest/reference/access_policies_create.html#access_policies_create-json-editor).

**Topics**
+ [Best practice per le policy](#security_iam_service-with-iam-policy-best-practices)
+ [Utilizzo della console AI SageMaker](#security_iam_id-based-policy-examples-console)
+ [Consentire agli utenti di visualizzare le loro autorizzazioni](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Controlla la creazione di risorse SageMaker AI con le chiavi di condizione](#sagemaker-condition-examples)
+ [Controlla l'accesso all'API SageMaker AI utilizzando politiche basate sull'identità](#api-access-policy)
+ [Limita l'accesso all'API SageMaker AI e alle chiamate di runtime in base all'indirizzo IP](#api-ip-filter)
+ [Limitazione dell’accesso a un’istanza del notebook in base all’indirizzo IP](#nbi-ip-filter)
+ [Controlla l'accesso alle risorse SageMaker AI utilizzando i tag](#access-tag-policy)
+ [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](#grant-tagging-permissions)
+ [Limitazione dell’accesso alle risorse ricercabili con condizioni di visibilità](#limit-access-to-searchable-resources)

## Best practice per le policy
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Le politiche basate sull'identità determinano se qualcuno può creare, accedere o eliminare risorse di SageMaker intelligenza artificiale nel tuo account. Queste operazioni possono comportare costi aggiuntivi per l’ Account AWS. Quando si creano o modificano policy basate sull’identità, seguire queste linee guida e raccomandazioni:
+ **Inizia con le policy AWS gestite e passa alle autorizzazioni con privilegi minimi: per iniziare a concedere autorizzazioni** *a utenti e carichi di lavoro, utilizza le politiche gestite che concedono le autorizzazioni per molti casi d'uso comuni.AWS * Sono disponibili nel tuo. Account AWS Ti consigliamo di ridurre ulteriormente le autorizzazioni definendo politiche gestite dai AWS clienti specifiche per i tuoi casi d'uso. Per maggiori informazioni, consulta [Policy gestite da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) o [Policy gestite da AWS per le funzioni dei processi](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) nella *Guida per l’utente di IAM*.
+ **Applicazione delle autorizzazioni con privilegio minimo** - Quando si impostano le autorizzazioni con le policy IAM, concedere solo le autorizzazioni richieste per eseguire un’attività. È possibile farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come *autorizzazioni con privilegio minimo*. Per maggiori informazioni sull’utilizzo di IAM per applicare le autorizzazioni, consulta [Policy e autorizzazioni in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) nella *Guida per l’utente di IAM*.
+ **Condizioni d’uso nelle policy IAM per limitare ulteriormente l’accesso** - Per limitare l’accesso ad azioni e risorse è possibile aggiungere una condizione alle policy. Ad esempio, è possibile scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzando SSL. Puoi anche utilizzare le condizioni per concedere l'accesso alle azioni del servizio se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio CloudFormation. Per maggiori informazioni, consultare la sezione [Elementi delle policy JSON di IAM: condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) nella *Guida per l’utente di IAM*.
+ **Utilizzo dello strumento di analisi degli accessi IAM per convalidare le policy IAM e garantire autorizzazioni sicure e funzionali** - Lo strumento di analisi degli accessi IAM convalida le policy nuove ed esistenti in modo che aderiscano al linguaggio (JSON) della policy IAM e alle best practice di IAM. Lo strumento di analisi degli accessi IAM offre oltre 100 controlli delle policy e consigli utili per creare policy sicure e funzionali. Per maggiori informazioni, consultare [Convalida delle policy per il Sistema di analisi degli accessi IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) nella *Guida per l’utente di IAM*.
+ **Richiedi l'autenticazione a più fattori (MFA**): se hai uno scenario che richiede utenti IAM o un utente root nel Account AWS tuo, attiva l'MFA per una maggiore sicurezza. Per richiedere la MFA quando vengono chiamate le operazioni API, aggiungere le condizioni MFA alle policy. Per maggiori informazioni, consultare [Protezione dell’accesso API con MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) nella *Guida per l’utente di IAM*.

Per maggiori informazioni sulle best practice in IAM, consulta [Best practice di sicurezza in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) nella *Guida per l’utente di IAM*.

## Utilizzo della console AI SageMaker
<a name="security_iam_id-based-policy-examples-console"></a>

Per accedere alla console Amazon SageMaker AI, devi disporre di un set minimo di autorizzazioni. Queste autorizzazioni devono consentirti di elencare e visualizzare i dettagli sulle risorse di SageMaker intelligenza artificiale presenti nel tuo AWS account. Se crei una policy di autorizzazione basata sull’identità più restrittiva delle autorizzazioni minime richieste, la console non funzionerà nel modo previsto per le entità associate a tale policy, inclusi gli utenti o i ruoli.

Per garantire che tali entità possano ancora utilizzare la console SageMaker AI, è inoltre necessario allegare alle entità la seguente politica AWS gestita. Per ulteriori informazioni, consulta [Aggiunta di autorizzazioni a un utente](https://docs.aws.amazon.com/service-authorization/latest/reference/id_users_change-permissions.html#users_change_permissions-add-console) in *Informazioni di riferimento sull’autorizzazione del servizio*:

Non è necessario consentire autorizzazioni minime per la console per gli utenti che effettuano chiamate solo verso AWS CLI o l' AWS API. Al contrario, è possibile accedere solo alle operazioni che soddisfano l’operazione API che stai cercando di eseguire.

**Topics**
+ [Autorizzazioni necessarie per utilizzare la console Amazon SageMaker AI](#console-permissions)
+ [Autorizzazioni necessarie per utilizzare la console Amazon SageMaker Ground Truth](#groundtruth-console-policy)
+ [Autorizzazioni necessarie per utilizzare la console di Amazon Augmented AI (Anteprima)](#amazon-augmented-ai-console-policy)

### Autorizzazioni necessarie per utilizzare la console Amazon SageMaker AI
<a name="console-permissions"></a>

La tabella di riferimento delle autorizzazioni elenca le operazioni dell'API Amazon SageMaker AI e mostra le autorizzazioni richieste per ciascuna operazione. Per ulteriori informazioni sulle operazioni delle API Amazon SageMaker AI, consulta[Autorizzazioni API Amazon SageMaker AI: riferimento ad azioni, autorizzazioni e risorse](api-permissions-reference.md).

Per utilizzare la console Amazon SageMaker AI, devi concedere le autorizzazioni per azioni aggiuntive. In particolare, la console necessita di autorizzazioni che consentano alle `ec2` azioni di visualizzare sottoreti e gruppi di sicurezza VPCs. La console potrebbe richiedere l'autorizzazione per creare *ruoli di esecuzione* per attività come `CreateNotebook`, `CreateTrainingJob` e `CreateModel`. Concedi queste autorizzazioni con la seguente policy di autorizzazioni:

------
#### [ JSON ]

****  

```
{
    "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"
            }
          }
        }
    ]
}
```

------



### Autorizzazioni necessarie per utilizzare la console Amazon SageMaker Ground Truth
<a name="groundtruth-console-policy"></a>

Per utilizzare la console Amazon SageMaker Ground Truth, devi concedere le autorizzazioni per risorse aggiuntive. In particolare, la console necessita delle autorizzazioni per:
+ il AWS Marketplace per visualizzare gli abbonamenti,
+ Operazioni di Amazon Cognito per gestire la forza lavoro privata
+ Azioni di Amazon S3 per l’accesso ai file di input e output
+ AWS Lambda azioni per elencare e richiamare funzioni

Concedi queste autorizzazioni con la seguente policy di autorizzazioni:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GroundTruthConsole",
            "Effect": "Allow",
            "Action": [
                "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:RunGenerateManifestByCrawlingJob",

                "lambda:InvokeFunction",
                "lambda:ListFunctions",

                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### Autorizzazioni necessarie per utilizzare la console di Amazon Augmented AI (Anteprima)
<a name="amazon-augmented-ai-console-policy"></a>

Per utilizzare la console IA aumentata Amazon, occorre concedere le autorizzazioni per le risorse aggiuntive. Concedi queste autorizzazioni con la seguente policy di autorizzazioni:

------
#### [ JSON ]

****  

```
{
    "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:*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",
                "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"
                    ]
                }
            }
        }
    ]
}
```

------

## Consentire agli utenti di visualizzare le loro autorizzazioni
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Questo esempio mostra in che modo è possibile creare una policy che consente agli utenti IAM di visualizzare le policy inline e gestite che sono collegate alla relativa identità utente. Questa politica include le autorizzazioni per completare questa azione sulla console o utilizzando l'API o a livello di codice. AWS CLI AWS 

```
{
    "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": "*"
        }
    ]
}
```

## Controlla la creazione di risorse SageMaker AI con le chiavi di condizione
<a name="sagemaker-condition-examples"></a>

Controlla l'accesso granulare per consentire la creazione di risorse SageMaker AI utilizzando chiavi di condizione specifiche per l' SageMaker intelligenza artificiale. Per informazioni sull'uso delle chiavi di condizione nelle policy IAM, consulta [elementi della policy IAM JSON: condizione](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_elements_condition.html) nella *Guida per l'utente di IAM*.

*Le chiavi di condizione, le relative azioni API e i collegamenti alla documentazione pertinente sono elencati in [Condition Keys for SageMaker AI nel Service Authorization Reference](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-policy-keys).*

Gli esempi seguenti mostrano come utilizzare le chiavi di condizione SageMaker AI per controllare l'accesso.

**Topics**
+ [Controlla l'accesso alle risorse SageMaker AI utilizzando le chiavi di condizione del file system](#access-fs-condition-keys)
+ [Limitazione dell’addestramento a un VPC specifico](#sagemaker-condition-vpc)
+ [Limitazione dell’accesso ai tipi di forza lavoro per i processi di etichettatura Ground Truth e i flussi di lavoro di revisione umana Amazon A2I](#sagemaker-condition-keys-labeling)
+ [Applicazione della crittografia dei dati di input](#sagemaker-condition-kms)
+ [Applicazione dell’isolamento di rete per i job di addestramento](#sagemaker-condition-isolation)
+ [Applicazione di un tipo di istanza specifico per i job di addestramento](#sagemaker-condition-instance)
+ [Applicazione della disabilitazione dell’accesso a Internet e dell’accesso root per la creazione di istanze del notebook](#sagemaker-condition-nbi-lockdown)

### Controlla l'accesso alle risorse SageMaker AI utilizzando le chiavi di condizione del file system
<a name="access-fs-condition-keys"></a>

SageMaker L'addestramento basato sull'intelligenza artificiale fornisce un'infrastruttura sicura in cui eseguire l'algoritmo di addestramento, ma in alcuni casi potresti aver bisogno di una difesa più approfondita. Ad esempio, riduci al minimo il rischio di eseguire codice non attendibile nell'algoritmo oppure disponi di mandati di sicurezza specifici nell'organizzazione. Per questi scenari, puoi utilizzare le chiavi di condizione specifiche del servizio nell’elemento Condizione di una policy IAM per limitare l’ambito dell’utente a:
+ file system specifici
+ directory
+ modalità di accesso (solo scrittura, solo lettura)
+ gruppi di sicurezza

**Topics**
+ [Limitazione per un utente IAM a specifiche directory e modalità di accesso](#access-fs-condition-keys-ex-dirs)
+ [Limitazione di un utente a un file system specifico](#access-fs-condition-keys-ex-fs)

#### Limitazione per un utente IAM a specifiche directory e modalità di accesso
<a name="access-fs-condition-keys-ex-dirs"></a>

La seguente politica limita un utente alle directory `/sagemaker/xgboost-dm/train` e alle `/sagemaker/xgboost-dm/validation` directory di un file system EFS `ro` (sola lettura): AccessMode

**Nota**  
Quando una directory è consentita, tutte le sue sottodirectory sono accessibili anche dall'algoritmo di addestramento. Le autorizzazioni POSIX vengono ignorate.

------
#### [ JSON ]

****  

```
{
    "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"
                }
            }
        }
    ]
}
```

------

#### Limitazione di un utente a un file system specifico
<a name="access-fs-condition-keys-ex-fs"></a>

Per evitare che un algoritmo dannoso che utilizza un client dello spazio utente acceda a qualsiasi file system direttamente nel tuo account, puoi limitare il traffico di rete. Per farlo, consenti l’ingresso solo da un gruppo di sicurezza specifico. Nell'esempio seguente, l'utente può utilizzare solo il gruppo di sicurezza specificato per accedere al file system:

------
#### [ JSON ]

****  

```
{
    "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"
                    ]
                }
            }
        }
    ]
}
```

------

Questo esempio può limitare un algoritmo a un file system specifico. Tuttavia, non impedisce a un algoritmo di accedere a qualsiasi directory all’interno del file system utilizzando il client dello spazio utente. Per mitigare questo problema, puoi:
+ Assicurarti che il file system contenga solo i dati a cui ritieni che gli utenti possano accedere
+ Crea un ruolo IAM che impedisca agli utenti di avviare processi di addestramento con algoritmi da repository ECR approvati

[Per ulteriori informazioni su come utilizzare i ruoli con l' SageMaker intelligenza artificiale, consulta AI Roles. SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html) 

### Limitazione dell’addestramento a un VPC specifico
<a name="sagemaker-condition-vpc"></a>

Limita un AWS utente alla creazione di lavori di formazione dall'interno di un Amazon VPC. Quando un job di addestramento viene creato all’interno di un VPC, utilizza i log del flusso VPC per monitorare tutto il traffico da e verso il cluster di addestramento. Per informazioni sull'utilizzo dei log di flusso VPC, consulta [Log di flusso VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) nella *Guida per l'utente di Amazon Virtual Private Cloud*.

L’applicazione della policy seguente impone che un processo di addestramento venga creato da un utente chiamando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) dall'interno di un VPC:

------
#### [ JSON ]

****  

```
{
    "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"
                }
            }
        }

    ]
}
```

------

### Limitazione dell’accesso ai tipi di forza lavoro per i processi di etichettatura Ground Truth e i flussi di lavoro di revisione umana Amazon A2I
<a name="sagemaker-condition-keys-labeling"></a>

I team di lavoro di Amazon SageMaker Ground Truth e Amazon Augmented AI rientrano in [tre tipi di forza lavoro](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management.html):
+ pubblico (con Amazon Mechanical Turk)
+ private
+ fornitore

Puoi limitare l’accesso degli utenti a un team di lavoro specifico utilizzando uno di questi tipi o l’ARN del team di lavoro. A tale scopo, usa i tasti `sagemaker:WorkteamType` and/or di `sagemaker:WorkteamArn` condizione. Per la chiave di `sagemaker:WorkteamType` condizione, utilizza [gli operatori di condizione stringa](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). Per la chiave di condizione `sagemaker:WorkteamArn`, utilizza [gli operatori di condizione nome della risorsa Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN). Se l'utente tenta di creare un processo di etichettatura con un team di lavoro limitato, SageMaker AI restituisce un errore di accesso negato. 

Le policy riportate di seguito illustrano diversi modi per utilizzare le chiavi di condizione `sagemaker:WorkteamType` e `sagemaker:WorkteamArn` con gli operatori di condizione appropriati e i valori di condizione validi. 

Nell'esempio seguente viene utilizzata la chiave di condizione `sagemaker:WorkteamType` con l'operatore di condizione `StringEquals` per limitare l'accesso a un team di lavoro pubblico. Accetta i valori delle condizioni nel seguente formato:`{{workforcetype}}-crowd`, where {{workforcetype}} can equal `public``private`, o`vendor`.

------
#### [ JSON ]

****  

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

------

Le policy seguenti mostrano come limitare l'accesso a un team di lavoro pubblico utilizzando la chiave di condizione `sagemaker:WorkteamArn`. La prima mostra come usare una variante regex IAM valida dell'ARN del team di lavoro e l'operatore di condizione `ArnLike`. La seconda mostra come usare l'operatore di condizione `ArnEquals` e l'ARN del team di lavoro.

------
#### [ JSON ]

****  

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

------

------
#### [ JSON ]

****  

```
{
    "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}}"
                }
            }
        }
    ]
}
```

------

 

### Applicazione della crittografia dei dati di input
<a name="sagemaker-condition-kms"></a>

La seguente politica limita a un utente la possibilità di specificare una AWS KMS chiave per crittografare i dati di input utilizzando la chiave `sagemaker:VolumeKmsKey` condition durante la creazione:
+ addestramento
+ ottimizzazione degli iperparametri
+ processi di etichettatura

------
#### [ JSON ]

****  

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

     ]
}
```

------

### Applicazione dell’isolamento di rete per i job di addestramento
<a name="sagemaker-condition-isolation"></a>

La policy seguente limita un utente ad abilitare l'isolamento di rete durante la creazione di processi di addestramento utilizzando la chiave di condizione `sagemaker:NetworkIsolation`:

------
#### [ JSON ]

****  

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

------

### Applicazione di un tipo di istanza specifico per i job di addestramento
<a name="sagemaker-condition-instance"></a>

La policy seguente limita un utente a utilizzare un tipo di istanza specifico durante la creazione di processi di addestramento utilizzando la chiave di condizione `sagemaker:InstanceTypes`:

------
#### [ JSON ]

****  

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

     ]
}
```

------

### Applicazione della disabilitazione dell’accesso a Internet e dell’accesso root per la creazione di istanze del notebook
<a name="sagemaker-condition-nbi-lockdown"></a>

Puoi disabilitare l'accesso a Internet e l'accesso root alle istanze del notebook per renderle più sicure. Per informazioni sul controllo dell’accesso root all’istanza del notebook, consulta [Controlla l'accesso root a un'istanza di notebook SageMaker](nbi-root-access.md). Per informazioni su come disabilitare l’accesso a Internet per un’istanza del notebook, consulta [Connessione di un'istanza del notebook in un VPC a risorse esterne](appendix-notebook-and-internet-access.md).

La policy seguente richiede che un utente disabiliti l'accesso alla rete durante la creazione dell'istanza o disabiliti l'accesso principale durante la creazione o l'aggiornamento di un'istanza del notebook. 

------
#### [ JSON ]

****  

```
{
    "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"
                }
            }
        }
     ]
}
```

------

## Controlla l'accesso all'API SageMaker AI utilizzando politiche basate sull'identità
<a name="api-access-policy"></a>

Per controllare l'accesso alle chiamate API SageMaker AI e alle chiamate agli endpoint ospitati dall' SageMaker IA, utilizza politiche IAM basate sull'identità.

**Topics**
+ [Limita l'accesso all'API SageMaker AI e il runtime delle chiamate dall'interno del tuo VPC](#api-access-policy-vpc)

### Limita l'accesso all'API SageMaker AI e il runtime delle chiamate dall'interno del tuo VPC
<a name="api-access-policy-vpc"></a>

Se configuri un endpoint di interfaccia nel tuo VPC, le persone esterne al VPC possono connettersi all'API AI ed eseguire SageMaker l'esecuzione su Internet. Per evitarlo, collega una policy IAM che limiti l’accesso alle chiamate provenienti dall’interno del VPC. Queste chiamate devono essere limitate a tutti gli utenti e i gruppi che hanno accesso alle tue SageMaker risorse AI. Per informazioni sulla creazione di un endpoint di interfaccia VPC per l'API SageMaker AI e il runtime, consulta. [Connettiti all' SageMaker IA all'interno del tuo VPC](interface-vpc-endpoint.md)

**Importante**  
Se applichi una policy IAM simile a una delle seguenti, gli utenti non possono accedere all' SageMaker IA specificata APIs tramite la console.

Per limitare l’accesso alle sole connessioni effettuate dall’interno del VPC, crea una policy AWS Identity and Access Management che limiti l’accesso. L’accesso deve essere limitato alle sole chiamate che provengono dall’interno del tuo VPC. Quindi aggiungi quella policy a ogni AWS Identity and Access Management utente, gruppo o ruolo utilizzato per accedere all'API o al runtime SageMaker AI.

**Nota**  
Questa policy consente connessioni solo ai chiamanti all'interno di una sottorete in cui è stato creato un endpoint di interfaccia.

------
#### [ JSON ]

****  

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

------

Per limitare l’accesso all’API alle sole chiamate effettuate con l’endpoint di interfaccia, utilizza la chiave di condizione `aws:SourceVpce` anziché `aws:SourceVpc`:

------
#### [ JSON ]

****  

```
{
    "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"
                    ]
                }
            }
        }
    ]
}
```

------

## Limita l'accesso all'API SageMaker AI e alle chiamate di runtime in base all'indirizzo IP
<a name="api-ip-filter"></a>

Puoi consentire l'accesso alle chiamate API SageMaker AI e alle chiamate di runtime solo dagli indirizzi IP in un elenco specificato. A tale scopo, crea una policy IAM che neghi l’accesso all’API a meno che la chiamata non provenga da un indirizzo IP nell’elenco. Quindi collega tale policy a ogni AWS Identity and Access Management utente, gruppo o ruolo utilizzato per accedere all'API o al runtime. Per informazioni sulla creazione di una policy IAM, consulta [Creazione di policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) nella *AWS Identity and Access Management Guida per l'utente di IAM*. 

Per specificare l’elenco di indirizzi IP che hanno accesso alla chiamata API, utilizza:
+ Operatore di condizione `IpAddress`
+ Chiave del contesto di condizione `aws:SourceIP`

Per informazioni sugli operatori di condizione IAM, consulta [Elementi della policy JSON di IAM: operatori di condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) nella *Guida per l'utente di AWS Identity and Access Management *. Per ulteriori informazioni sulle chiavi di contesto della condizione IAM, consulta [Chiavi di contesto delle condizioni globali AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).

Ad esempio, la seguente policy consente l'accesso a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html) solo dagli indirizzi IP negli intervalli `192.0.2.0`-`192.0.2.255` e `203.0.113.0`-`203.0.113.255`:

------
#### [ JSON ]

****  

```
{
    "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"
                    ]
                }
            }
        }
    ]
}
```

------

## Limitazione dell’accesso a un’istanza del notebook in base all’indirizzo IP
<a name="nbi-ip-filter"></a>

Puoi consentire l’accesso a un’istanza del notebook solo dagli indirizzi IP di un elenco specificato. A tale scopo, crea una policy IAM che neghi l’accesso a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) a meno che la chiamata non provenga da un indirizzo IP nell’elenco. Quindi, collega questa policy a ogni AWS Identity and Access Management utente, gruppo o ruolo utilizzato per accedere all'istanza del notebook. Per informazioni sulla creazione di una policy IAM, consulta [Creazione di policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) nella *AWS Identity and Access Management Guida per l'utente di IAM*. 

Per specificare l’elenco di indirizzi IP a cui vuoi concedere l’accesso all’istanza del notebook, utilizza:
+ Operatore di condizione `IpAddress`
+ Chiave del contesto di condizione `aws:SourceIP`

Per informazioni sugli operatori di condizione IAM, consulta [Elementi della policy JSON di IAM: operatori di condizione](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) nella *Guida per l'utente di AWS Identity and Access Management *. Per ulteriori informazioni sulle chiavi di contesto della condizione IAM, consulta [Chiavi di contesto delle condizioni globali AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html).

Ad esempio, la seguente policy consente l'accesso a un'istanza del notebook solo da indirizzi IP negli intervalli `192.0.2.0`-`192.0.2.255` e `203.0.113.0`-`203.0.113.255`:

------
#### [ JSON ]

****  

```
{
    "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"
                    ]
                }
            }
        }
    ]
}
```

------

La policy limita l'accesso alla chiamata a `CreatePresignedNotebookInstanceUrl` e all'URL restituito dalla chiamata. La policy limita, inoltre, l'accesso all'apertura di un'istanza notebook nella console. Viene applicata per ogni richiesta HTTP e WebSocket frame che tenta di connettersi all'istanza del notebook.

**Nota**  
L'utilizzo di questo metodo per filtrare in base all'indirizzo IP è incompatibile quando [ci si connette all' SageMaker IA tramite un endpoint di interfaccia VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/interface-vpc-endpoint.html). . Per informazioni sulla limitazione dell'accesso a un'istanza del notebook durante la connessione tramite un endpoint VPC di interfaccia, consulta [Connessione a un'istanza del notebook tramite un endpoint VPC di interfaccia](notebook-interface-endpoint.md).

## Controlla l'accesso alle risorse SageMaker AI utilizzando i tag
<a name="access-tag-policy"></a>

Specificate i tag all'interno di una policy IAM per controllare l'accesso a gruppi di risorse SageMaker AI. Utilizza i tag per implementare il controllo degli accessi basato su attributi (ABAC). L'utilizzo dei tag consente di partizionare l'accesso alle risorse a gruppi specifici di utenti. Puoi avere un team con accesso a un gruppo di risorse e un team diverso con accesso a un altro set di risorse. Puoi fornire `ResourceTag` condizioni nelle policy IAM per fornire l'accesso a ciascun gruppo.

**Nota**  
Le policy basate su tag non vanno bene per limitare le seguenti chiamate API:  
DeleteImageVersion
DescribeImageVersion
ListAlgorithms
ListCodeRepositories
ListCompilationJobs
ListEndpointConfigs
ListEndpoints
ListFlowDefinitions
ListHumanTaskUis
ListHyperparameterTuningJobs
ListLabelingJobs
ListLabelingJobsForWorkteam
ListModelPackages
ListModels
ListNotebookInstanceLifecycleConfigs
ListNotebookInstances
ListSubscribedWorkteams
ListTags
ListProcessingJobs
ListTrainingJobs
ListTrainingJobsForHyperParameterTuningJob
ListTransformJobs
ListWorkteams
Cerca

Un semplice esempio può aiutarti a capire come utilizzare i tag per partizionare le risorse. Supponiamo di aver definito due diversi gruppi IAM, denominati `DevTeam1` e`DevTeam2`, nel tuo AWS account. Hai creato anche 10 istanze del notebook. Stai utilizzando 5 istanze del notebook per un progetto. Stai usando le altre 5 per un secondo progetto. Puoi fornire a `DevTeam1` le autorizzazioni per effettuare chiamate API sulle istanze del notebook che stai utilizzando per il primo progetto. Puoi consentire a `DevTeam2` di effettuare chiamate API sulle istanze del notebook utilizzate per il secondo progetto.

La procedura seguente fornisce un semplice esempio che aiuta a comprendere il concetto di aggiunta di tag. È possibile utilizzarlo per implementare la soluzione descritta nel paragrafo precedente.

**Per controllare l'accesso alle chiamate API (esempio)**

1. Aggiungere un tag con la chiave `Project` e il valore `A` alle istanze del notebook utilizzate per il primo progetto. Per informazioni sull'aggiunta di tag alle risorse SageMaker AI, consulta [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html). 

1. Aggiungere un tag con la chiave `Project` e il valore `B` alle istanze del notebook utilizzate per il secondo progetto.

1. Crea una policy IAM con una condizione `ResourceTag` che neghi l’accesso alle istanze del notebook utilizzate per il secondo progetto. Quindi, collega la policy a `DevTeam1`. La policy di esempio seguente rifiuta tutte le chiamate API su qualsiasi istanza del notebook che ha un tag con una chiave `Project` e un valore `B`:

------
#### [ JSON ]

****  

   ```
   {
     "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": "*"
       }
     ]
   }
   ```

------

   Per informazioni su come creare policy IAM e collegarle alle identità, consulta [Controllo dell'accesso tramite le policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_controlling.html) nella *Guida per l'utente di AWS Identity and Access Management *.

1. Crea una policy IAM con una condizione `ResourceTag` che neghi l’accesso alle istanze del notebook utilizzate per il primo progetto. Quindi, collega la policy a `DevTeam2`. La policy di esempio seguente rifiuta tutte le chiamate API su qualsiasi istanza del notebook che ha un tag con una chiave `Project` e un valore `A`:

------
#### [ JSON ]

****  

   ```
   {
     "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": "*"
       }
     ]
   }
   ```

------

## Fornisci le autorizzazioni per etichettare SageMaker le risorse AI
<a name="grant-tagging-permissions"></a>

I [tag](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html) sono etichette di metadati che puoi allegare a determinate risorse. AWS Un tag è costituito da una coppia chiave-valore che fornisce un modo flessibile per annotare le risorse con attributi di metadati per vari [casi d’uso di tagging](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-use-cases.html), tra cui:
+ cerca
+ sicurezza
+ [attribuzione dei costi](https://docs.aws.amazon.com/whitepapers/latest/sagemaker-studio-admin-best-practices/cost-attribution.html)
+ controllo accessi
+ automazione

Possono essere utilizzati nelle autorizzazioni e nelle politiche, nelle quote di servizio e nelle integrazioni con altri servizi. AWS I tag possono essere definiti dall'utente o AWS generati durante la creazione di risorse. Se i tag sono personalizzati, vengono specificati manualmente da un utente, in caso contrario vengono generati automaticamente dal servizio AWS .
+ *Tag definiti dall'utente* nell' SageMaker intelligenza artificiale: gli utenti possono aggiungere tag quando creano risorse SageMaker AI utilizzando SageMaker SDKs la AWS CLI CLI SageMaker APIs SageMaker , la console AI o i modelli. CloudFormation 
**Nota**  
I tag definiti dall’utente possono essere sovrascritti se una risorsa viene successivamente aggiornata e il valore del tag viene modificato o sostituito. Ad esempio, un job di addestramento creato con {Team: A} potrebbe essere aggiornato in modo errato e ritaggato come {Team: B}. Di conseguenza, le autorizzazioni consentite potrebbero essere assegnate in modo errato. Occorre quindi prestare attenzione quando si consente agli utenti o ai gruppi di aggiungere tag, perché potrebbero sostituire i valori dei tag esistenti. È buona prassi stabilire limitazioni rigorose per le autorizzazioni dei tag e utilizzare le condizioni IAM per controllare le capacità di tagging.
+ *AWS tag generati* nell' SageMaker IA: l' SageMaker IA etichetta automaticamente determinate risorse che crea. Ad esempio, Studio e Studio Classic assegnano automaticamente il `sagemaker:domain-arn` tag alle risorse di SageMaker intelligenza artificiale che creano. L'etichettatura di nuove risorse con il dominio ARN fornisce la tracciabilità della provenienza delle risorse di intelligenza artificiale SageMaker come lavori di formazione, modelli ed endpoint. Per un controllo e un monitoraggio più precisi, le nuove risorse ricevono tag aggiuntivi come:
  + `sagemaker:user-profile-arn`: l’ARN del profilo utente che ha creato la risorsa. Questa operazione consente di tenere traccia delle risorse create da utenti specifici.
  + `sagemaker:space-arn`: l’ARN dello spazio in cui è stata creata la risorsa. Questa operazione consente di raggruppare e isolare le risorse per ogni spazio. 
**Nota**  
AWS i tag generati non possono essere modificati dagli utenti.

Per informazioni generali sull'etichettatura AWS delle risorse e sulle migliori pratiche, consulta [Etichettare le AWS](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html) risorse. Per informazioni sui principali casi d’uso di tagging, consulta [Tagging use cases](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-use-cases.html).

### Concedi l'autorizzazione ad aggiungere tag durante la creazione SageMaker di risorse AI
<a name="grant-tagging-permissions-with-create"></a>

Puoi consentire agli utenti (*tag definiti dall'utente*) o a Studio e Studio Classic (*tag AWS generati*) di aggiungere tag alle nuove risorse SageMaker AI al momento della creazione. A tal fine, le autorizzazioni IAM devono includere:
+ L'autorizzazione di creazione SageMaker AI di base per quel tipo di risorsa.
+ L’autorizzazione `sagemaker:AddTags`. 

Ad esempio, consentire a un utente di creare un lavoro di SageMaker formazione e di etichettarlo richiederebbe la concessione di autorizzazioni per `sagemaker:CreateTrainingJob` e. `sagemaker:AddTags`

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare risorse Amazon SageMaker AI devono inoltre concedere le autorizzazioni per aggiungere tag a tali risorse. L’autorizzazione per aggiungere tag alle risorse è necessaria perché Studio e Studio Classic applicano automaticamente tag a tutte le risorse che creano. Se una policy IAM consente a Studio e Studio Classic di creare risorse ma non consente l'aggiunta di tag, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse.  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che forniscono le autorizzazioni per creare risorse SageMaker AI includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse. 

Gli amministratori assegnano queste autorizzazioni IAM a uno di questi ruoli:
+ AWS Ruoli IAM assegnati all'utente per i tag definiti dall'utente
+ Ruolo di esecuzione utilizzato da Studio o Studio Classic per i tag generati da AWS 

Per istruzioni sulla creazione e l’applicazione di policy IAM personalizzate, consulta [Creazione di policy IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html).

**Nota**  
L'elenco delle operazioni di creazione di risorse SageMaker AI è disponibile nella [documentazione dell'SageMaker API](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Operations_Amazon_SageMaker_Service.html) cercando le azioni che iniziano con`Create`. Queste azioni di creazione, come `CreateTrainingJob` e`CreateEndpoint`, sono le operazioni che creano nuove risorse di SageMaker intelligenza artificiale.

**Aggiunta di autorizzazioni dei tag a determinate azioni di creazione**

Per concedere l’autorizzazione `sagemaker:AddTags` con vincoli, collega una policy IAM aggiuntiva alla policy di creazione delle risorse originale. La politica di esempio seguente consente`sagemaker:AddTags`, ma la limita solo a determinate risorse di SageMaker intelligenza artificiale, di creare azioni come`CreateTrainingJob`. 

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

La condizione della policy limita l’utilizzo di `sagemaker:AddTags` solo in combinazione con specifiche azioni di creazione. In questo approccio, la policy di autorizzazione di creazione rimane invariata mentre una policy aggiuntiva fornisce un accesso limitato a `sagemaker:AddTags`. Questa condizione impedisce l’autorizzazione generalizzata di `sagemaker:AddTags`, limitandola esclusivamente alle azioni di creazione che richiedono tag. Ciò implementa il privilegio minimo `sagemaker:AddTags` consentendolo solo per casi d'uso specifici per la creazione di risorse di SageMaker intelligenza artificiale. 

**Esempio: consenti l’autorizzazione dei tag a livello globale e limita le azioni di creazione a un dominio**

In questo esempio di policy IAM personalizzata, le prime due istruzioni illustrano l’utilizzo dei tag per monitorare la creazione di risorse. Consente l’azione `sagemaker:CreateModel` su tutte le risorse e il tagging di tali risorse quando viene utilizzata l’azione. La terza istruzione mostra come utilizzare i valori dei tag per controllare le operazioni sulle risorse. In questo caso, impedisce la creazione di risorse SageMaker AI etichettate con un ARN di dominio specifico, limitando l'accesso in base al valore del tag.

In particolare:
+ La prima istruzione consente l’azione `CreateModel` su qualsiasi risorsa (`*`).
+ La seconda istruzione consente l’azione `sagemaker:AddTags`, ma solo quando la chiave di condizione `sagemaker:TaggingAction` è uguale a `CreateModel`. Questo limita l’azione `sagemaker:AddTags`, che può essere utilizzata solo per etichettare un modello appena creato.
+ La terza affermazione nega qualsiasi azione di creazione dell' SageMaker IA (`Create*`) su qualsiasi risorsa (`*`), ma solo quando la risorsa ha un tag `sagemaker:domain-arn` uguale a un `{{domain-arn}}` ARN di dominio specifico,.

```
{
   "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}}"
            }
         }
      }
   ]
}
```

## Limitazione dell’accesso alle risorse ricercabili con condizioni di visibilità
<a name="limit-access-to-searchable-resources"></a>

Utilizza le condizioni di visibilità per limitare l'accesso dei tuoi utenti a risorse taggate specifiche all'interno di un AWS account. Gli utenti possono accedere solo alle risorse per le quali dispongono delle autorizzazioni. Quando gli utenti effettuano ricerche nelle proprie risorse, possono limitare i risultati della ricerca a risorse specifiche.

Potresti volere che i tuoi utenti vedano e interagiscano solo con le risorse associate a domini Amazon SageMaker Studio o Amazon SageMaker Studio Classic specifici. Puoi utilizzare le condizioni di visibilità per limitare l’accesso a uno o più domini.

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

Il formato generale di una condizione di visibilità è `"sagemaker:SearchVisibilityCondition/Tags.key": "value"`. Puoi fornire la coppia chiave-valore per qualsiasi risorsa taggata.

```
{
   "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:{{Regione AWS}}:{{111122223333}}:domain/{{example-domain-1}}"},
         {"Key": "Tags.sagemaker:{{example-domain-arn}}", "Value": "arn:aws:sagemaker:{{Regione AWS}}:111122223333:domain/{{example-domain-2}}"}
]
   ],
   "SortBy": "string",
   "SortOrder": "string"
}
```

La condizione di visibilità contenuta al suo interno utilizza la stessa formattazione `"sagemaker:SearchVisibilityCondition/Tags.key": "value"` specificata nella policy. I tuoi utenti possono specificare le coppie chiave-valore utilizzate per qualsiasi risorsa taggata.

Se un utente include il parametro `VisibilityConditions` nella richiesta di [ricerca](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html), ma la policy di accesso applicabile all’utente non contiene alcuna chiave di condizione corrispondente specificata in `VisibilityConditions`, la richiesta `Search` viene comunque consentita ed eseguita.

Se un parametro `VisibilityConditions` non è specificato nella richiesta dell’API di [ricerca](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_Search.html) dell’utente, ma la policy di accesso applicabile all’utente contiene chiavi di condizione relative a `VisibilityConditions`, la richiesta `Search` dell’utente viene rifiutata.