

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à.

# Policy di esempio basate su autorizzazioni a livello di risorsa
<a name="AWSHowTo.iam.example.resource"></a>

Questa sezione esamina un caso d'uso per il controllo delle autorizzazioni utente per le operazioni Elastic Beanstalk che accedono a specifiche risorse Elastic Beanstalk. Esamineremo le policy di esempio che supportano il caso d'uso. Per ulteriori informazioni sulle policy per le risorse Elastic Beanstalk, consulta [Creazione di una policy utente personalizzata](AWSHowTo.iam.managed-policies.md#AWSHowTo.iam.policies). Per informazioni su come collegare le policy a utenti e gruppi, consultare [Gestione di policy IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingPolicies.html) in *Utilizzo di AWS Identity and Access Management*. 

In questo caso d'uso Example Corp. è una piccola società di consulenza che sviluppa applicazioni per due clienti diversi. John è il responsabile di sviluppo che supervisiona lo sviluppo delle due applicazioni Elastic Beanstalk, app1 e app2. John si occupa dello sviluppo e di alcuni test sulle due applicazioni ed è l'unico che può aggiornare l'ambiente di produzione per entrambe le applicazioni. Queste sono le autorizzazioni necessarie per app1 e app2:
+ Visualizzazione di applicazioni, versioni di applicazioni, ambienti e modelli di configurazione
+ Creazione di versioni di applicazioni e relativa distribuzione nell'ambiente di gestione temporanea
+ Aggiornamento dell'ambiente di produzione
+ Creazione e terminazione di ambienti

Jill è un tester che deve accedere per visualizzare le risorse seguenti per monitorare e testare le due applicazioni: applicazioni, versioni di applicazioni, ambienti e modelli di configurazione. Tuttavia, non deve essere in grado di apportare modifiche alle risorse Elastic Beanstalk.

Jack è lo sviluppatore per app1 che deve accedere per visualizzare tutte le risorse per app1 e deve creare versioni di applicazione per app1 e distribuirle nell'ambiente di gestione temporanea.

Judy è l'amministratore dell' AWS account di Example Corp. Ha creato utenti IAM per John, Jill e Jack e attribuisce le seguenti politiche a tali utenti per concedere le autorizzazioni appropriate alle applicazioni app1 e app2.

## Esempio 1: John - manager di sviluppo per app1, app2
<a name="AWSHowTo.iam.policies.john"></a>

Abbiamo suddiviso la policy di John in tre policy separate, in modo che siano più facili da leggere e gestire. Insieme, offrono a John le autorizzazioni necessarie per eseguire le operazioni di sviluppo, testing e distribuzione sulle due applicazioni.

La prima policy specifica le azioni per Auto Scaling, Amazon S3, Amazon EC2, Amazon SNS CloudWatch, Elastic Load Balancing, Amazon RDS e. CloudFormation Elastic Beanstalk si basa su questi servizi aggiuntivi per effettuare il provisioning delle risorse sottostanti durante la creazione di un ambiente.

Importante: questa policy è un esempio. Fornisce un ampio set di autorizzazioni ai AWS prodotti utilizzati da Elastic Beanstalk per gestire applicazioni e ambienti. Ad esempio, `ec2:*` consente a un utente IAM di eseguire qualsiasi azione su qualsiasi risorsa Amazon EC2 nell' AWS account. Queste autorizzazioni non sono limitate alle risorse che utilizzi con Elastic Beanstalk. Come best practice, dovresti concedere agli individui solo le autorizzazioni necessarie per eseguire le proprie funzioni.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
   {
   "Effect": "Allow",
   "Action": [
   "ec2:*",
   "ecs:*",
   "ecr:*",
   "elasticloadbalancing:*",
   "autoscaling:*",
   "cloudwatch:*",
   "s3:*",
   "sns:*",
   "cloudformation:*",
   "dynamodb:*",
   "rds:*",
   "sqs:*",
   "logs:*",
   "iam:GetPolicyVersion",
   "iam:GetRole",
   "iam:ListRolePolicies",
   "iam:ListAttachedRolePolicies",
   "iam:ListInstanceProfiles",
   "iam:ListRoles",
   "iam:ListServerCertificates",
   "acm:DescribeCertificate",
   "acm:ListCertificates",
   "codebuild:CreateProject",
   "codebuild:DeleteProject",
   "codebuild:BatchGetBuilds",
   "codebuild:StartBuild"
   ],
   "Resource": "*"
   },
   {
   "Effect": "Allow",
   "Action": [
   "iam:PassRole"
   ],
   "Resource": "arn:aws:iam::111122223333:role/MyRole"
   }
   ]
   }
```

------

La seconda policy specifica le operazioni Elastic Beanstalk che John può eseguire sulle risorse app1 e app2. L'istruzione `AllCallsInApplications` consente tutte le operazioni Elastic Beanstalk (`"elasticbeanstalk:*"`) eseguite su tutte le risorse all'interno di app1 e app2 (ad esempio, `elasticbeanstalk:CreateEnvironment`). L'istruzione `AllCallsOnApplications` consente tutte le operazioni Elastic Beanstalk (`"elasticbeanstalk:*"`) sulle risorse delle applicazioni app1 e app2 (ad esempio `elasticbeanstalk:DescribeApplications`, `elasticbeanstalk:UpdateApplication` e così via). L'istruzione `AllCallsOnSolutionStacks` consente tutte le operazioni Elastic Beanstalk (`"elasticbeanstalk:*"`) per le risorse dello stack di soluzioni (ad esempio `elasticbeanstalk:ListAvailableSolutionStacks`). 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllCallsInApplications",
         "Action":[
            "elasticbeanstalk:*"
         ],
         "Effect":"Allow",
         "Resource":[
            "*"
         ],
         "Condition":{
            "StringEquals":{
               "elasticbeanstalk:InApplication":[
                  "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1",
                  "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2"
               ]
            }
         }
      },
      {
         "Sid":"AllCallsOnApplications",
         "Action":[
            "elasticbeanstalk:*"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1",
            "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2"
         ]
      },
      {
         "Sid":"AllCallsOnSolutionStacks",
         "Action":[
            "elasticbeanstalk:*"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:elasticbeanstalk:us-east-2::solutionstack/*"
         ]
      }
   ]
}
```

------

La terza policy specifica le operazioni Elastic Beanstalk per cui la seconda policy richiede le autorizzazioni per essere completate. L'istruzione `AllNonResourceCalls` consente l'operazione `elasticbeanstalk:CheckDNSAvailability`, necessaria per chiamare `elasticbeanstalk:CreateEnvironment` e altre operazioni. Consente anche l'operazione `elasticbeanstalk:CreateStorageLocation`, necessaria per `elasticbeanstalk:CreateApplication`, `elasticbeanstalk:CreateEnvironment` e altre operazioni. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllNonResourceCalls",
         "Action":[
            "elasticbeanstalk:CheckDNSAvailability",
            "elasticbeanstalk:CreateStorageLocation"
         ],
         "Effect":"Allow",
         "Resource":[
            "*"
         ]
      }
   ]
}
```

------

## Esempio 2: Jill - tester per app1, app2
<a name="AWSHowTo.iam.policies.jill"></a>

Abbiamo suddiviso la policy di Jill in tre policy separate, in modo che siano più facili da leggere e gestire. Insieme, offrono a Jill le autorizzazioni necessarie per eseguire le operazioni di testing e monitoraggio sulle due applicazioni.

La prima policy specifica e specifica `Get*` le azioni su Auto Scaling `Describe*``List*`, Amazon S3, Amazon EC2, Amazon SNS, Elastic Load Balancing CloudWatch, CloudFormation Amazon RDS e (per i tipi di container non legacy) in modo che le azioni Elastic Beanstalk siano in grado di recuperare le informazioni pertinenti sulle risorse sottostanti delle applicazioni app1 e app2.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "ec2:Describe*",
            "elasticloadbalancing:Describe*",
            "autoscaling:Describe*",
            "cloudwatch:Describe*",
            "cloudwatch:List*",
            "cloudwatch:Get*",
            "s3:Get*",
            "s3:List*",
            "sns:Get*",
            "sns:List*",
            "rds:Describe*",
            "cloudformation:Describe*",
        	"cloudformation:Get*",
        	"cloudformation:List*",
        	"cloudformation:Validate*",
        	"cloudformation:Estimate*"
         ],
         "Resource":"*"
      }
   ]
}
```

------

La seconda policy specifica le operazioni Elastic Beanstalk che Jill può eseguire sulle risorse app1 e app2. L'istruzione `AllReadCallsInApplications` consente a Jill di chiamare le operazioni `Describe*` e le operazioni informative sull'ambiente. L'istruzione `AllReadCallsOnApplications` le consente di chiamare le operazioni `DescribeApplications` e `DescribeEvents` sulle risorse delle applicazioni app1 e app2. L'istruzione `AllReadCallsOnSolutionStacks` le consente di visualizzare operazioni che coinvolgono le risorse dello stack di soluzioni (`ListAvailableSolutionStacks`, `DescribeConfigurationOptions` e `ValidateConfigurationSettings`). 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllReadCallsInApplications",
         "Action":[
            "elasticbeanstalk:Describe*",
            "elasticbeanstalk:RequestEnvironmentInfo",
            "elasticbeanstalk:RetrieveEnvironmentInfo"
         ],
         "Effect":"Allow",
         "Resource":[
            "*"
         ],
         "Condition":{
            "StringEquals":{
               "elasticbeanstalk:InApplication":[
                  "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1",
                  "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2"
               ]
            }
         }
      },
      {
         "Sid":"AllReadCallsOnApplications",
         "Action":[
            "elasticbeanstalk:DescribeApplications",
            "elasticbeanstalk:DescribeEvents"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1",
            "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app2"
         ]
      },
      {
         "Sid":"AllReadCallsOnSolutionStacks",
         "Action":[
            "elasticbeanstalk:ListAvailableSolutionStacks",
            "elasticbeanstalk:DescribeConfigurationOptions",
            "elasticbeanstalk:ValidateConfigurationSettings"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:elasticbeanstalk:us-east-2::solutionstack/*"
         ]
      }
   ]
}
```

------

La terza policy specifica le operazioni Elastic Beanstalk per cui la seconda policy richiede le autorizzazioni per essere completate. L'istruzione `AllNonResourceCalls` le consente l'operazione `elasticbeanstalk:CheckDNSAvailability`, che è necessaria per alcune azioni di visualizzazione.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllNonResourceCalls",
         "Action":[
            "elasticbeanstalk:CheckDNSAvailability"
         ],
         "Effect":"Allow",
         "Resource":[
            "*"
         ]
      }
   ]
}
```

------

## Esempio 3: Jack - sviluppatore per app1
<a name="AWSHowTo.iam.policies.jack"></a>

Abbiamo suddiviso la policy di Jack in tre policy separate, in modo che siano più facili da leggere e gestire. Insieme, danno a Jack le autorizzazioni necessarie per eseguire operazioni di testing, monitoraggio e distribuzione sulla risorsa app1.

La prima policy specifica le azioni su Auto Scaling, Amazon S3, Amazon EC2, Amazon SNS, Elastic Load Balancing CloudWatch, CloudFormation Amazon RDS e (per i tipi di container non legacy) in modo che le azioni Elastic Beanstalk siano in grado di visualizzare e utilizzare le risorse sottostanti di app1. Per un elenco di tipi di container non legacy supportati, consulta [Perché alcune versioni di piattaforma sono contrassegnate come legacy?](using-features.migration.md#using-features.migration.why).

Importante: questa policy è un esempio. Fornisce un ampio set di autorizzazioni ai AWS prodotti utilizzati da Elastic Beanstalk per gestire applicazioni e ambienti. Ad esempio, `ec2:*` consente a un utente IAM di eseguire qualsiasi azione su qualsiasi risorsa Amazon EC2 nell' AWS account. Queste autorizzazioni non sono limitate alle risorse che utilizzi con Elastic Beanstalk. Come best practice, dovresti concedere agli individui solo le autorizzazioni necessarie per eseguire le proprie funzioni.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "ec2:*",
            "elasticloadbalancing:*",
            "autoscaling:*",
            "cloudwatch:*",
            "s3:*",
            "sns:*",
            "rds:*",
            "cloudformation:*"
         ],
         "Resource":"*"
      }
   ]
}
```

------

La seconda policy specifica le operazioni Elastic Beanstalk che Jack può eseguire sulla risorsa app1.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllReadCallsAndAllVersionCallsInApplications",
         "Action":[
            "elasticbeanstalk:Describe*",
            "elasticbeanstalk:RequestEnvironmentInfo",
            "elasticbeanstalk:RetrieveEnvironmentInfo",
            "elasticbeanstalk:CreateApplicationVersion",
            "elasticbeanstalk:DeleteApplicationVersion",
            "elasticbeanstalk:UpdateApplicationVersion"
         ],
         "Effect":"Allow",
         "Resource":[
            "*"
         ],
         "Condition":{
            "StringEquals":{
               "elasticbeanstalk:InApplication":[
                  "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1"
               ]
            }
         }
      },
      {
         "Sid":"AllReadCallsOnApplications",
         "Action":[
            "elasticbeanstalk:DescribeApplications",
            "elasticbeanstalk:DescribeEvents"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1"
         ]
      },
      {
         "Sid":"UpdateEnvironmentInApplications",
         "Action":[
            "elasticbeanstalk:UpdateEnvironment"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:elasticbeanstalk:us-east-2:123456789012:environment/app1/app1-staging*"
         ],
         "Condition":{
            "StringEquals":{
               "elasticbeanstalk:InApplication":[
                  "arn:aws:elasticbeanstalk:us-east-2:123456789012:application/app1"
               ]
            },
            "ArnLike":{
               "elasticbeanstalk:FromApplicationVersion":[
                  "arn:aws:elasticbeanstalk:us-east-2:123456789012:applicationversion/app1/*"
               ]
            }
         }
      },
      {
         "Sid":"AllReadCallsOnSolutionStacks",
         "Action":[
            "elasticbeanstalk:ListAvailableSolutionStacks",
            "elasticbeanstalk:DescribeConfigurationOptions",
            "elasticbeanstalk:ValidateConfigurationSettings"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:elasticbeanstalk:us-east-2::solutionstack/*"
         ]
      }
   ]
}
```

------

La terza policy specifica le operazioni Elastic Beanstalk per cui la seconda policy richiede le autorizzazioni per essere completate. L'istruzione `AllNonResourceCalls` consente l'operazione `elasticbeanstalk:CheckDNSAvailability`, necessaria per chiamare `elasticbeanstalk:CreateEnvironment` e altre operazioni. Consente anche l'operazione `elasticbeanstalk:CreateStorageLocation`, necessaria per `elasticbeanstalk:CreateEnvironment` e altre operazioni. 

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllNonResourceCalls",
         "Action":[
            "elasticbeanstalk:CheckDNSAvailability",
            "elasticbeanstalk:CreateStorageLocation"
         ],
         "Effect":"Allow",
         "Resource":[
            "*"
         ]
      }
   ]
}
```

------