

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

# AWS Serverless Application Repository Esempi di policy applicative
<a name="security_iam_resource-based-policy-examples"></a>

Le politiche di autorizzazione allegate alle AWS Serverless Application Repository applicazioni sono denominate *politiche applicative*. Le politiche di applicazione determinano le azioni che un principal o PrincipalOrg specificato può eseguire su un'applicazione. AWS Serverless Application Repository 

Un' AWS Serverless Application Repository *applicazione* è la AWS risorsa principale di. AWS Serverless Application Repository AWS Serverless Application Repository le politiche applicative vengono utilizzate principalmente dagli editori per concedere l'autorizzazione agli utenti di distribuire le proprie applicazioni e le operazioni correlate, ad esempio la ricerca e la visualizzazione dei dettagli di tali applicazioni.

I publisher possono impostare le autorizzazioni dell'applicazione per le tre categorie seguenti:
+ **Private**: applicazioni create con lo stesso account e non condivise con nessun altro account. Solo i consumatori che condividono il tuo AWS account sono autorizzati a distribuire applicazioni private.
+ **Condivise privatamente**: applicazioni che l'editore ha esplicitamente condiviso con un set specifico di AWS account o con gli account di un' AWS organizzazione. AWS I consumatori sono autorizzati a distribuire applicazioni condivise con il proprio AWS account o la propria organizzazione. AWS Per ulteriori informazioni sulle AWS organizzazioni, consulta la *[Guida per l'AWS Organizations utente](https://docs.aws.amazon.com/organizations/latest/userguide/)*.
+ **Condivise pubblicamente**: applicazioni che l'editore ha condiviso con tutti. Tutti i consumatori hanno l'autorizzazione per distribuire qualsiasi applicazione condivisa pubblicamente.

**Nota**  
Per le **applicazioni condivise privatamente**, supporta AWS Serverless Application Repository solo gli *AWS account* come principali. Gli editori possono concedere o negare a tutti gli utenti di un AWS account come gruppo singolo l'accesso a un'applicazione. AWS Serverless Application Repository Gli editori non possono concedere o negare l'accesso a un'applicazione ai singoli utenti di un account. AWS AWS Serverless Application Repository 

Per istruzioni su come impostare le autorizzazioni dell'applicazione utilizzando il, vedere. Console di gestione AWS[Condivisione di un'applicazione](serverlessrepo-how-to-publish.md#share-application)

Per istruzioni sull'impostazione delle autorizzazioni delle applicazioni utilizzando gli esempi AWS CLI and, vedere le sezioni seguenti.

## Autorizzazioni dell'applicazione (AWS CLI e) AWS SDKs
<a name="application-permissions"></a>

Quando utilizzi AWS CLI o AWS SDKs per impostare le autorizzazioni per un' AWS Serverless Application Repository applicazione, puoi specificare le seguenti azioni:


****  

| Azione | Description | 
| --- | --- | 
| GetApplication |  Concede l'autorizzazione per visualizzare informazioni sull'applicazione.  | 
| CreateCloudFormationChangeSet |  Concede l'autorizzazione per distribuire l'applicazione. Nota: questa operazione *non* concede altre autorizzazioni se non quella di distribuzione.  | 
| CreateCloudFormationTemplate |  Concede l'autorizzazione a creare un CloudFormation modello per l'applicazione.  | 
| ListApplicationVersions | Concede l'autorizzazione per elencare le versioni dell'applicazione. | 
| ListApplicationDependencies | Concede l'autorizzazione per visualizzare l'elenco delle applicazioni che sono nidificate nell'applicazione che le contiene. | 
| SearchApplications | Concede l'autorizzazione per cercare l'applicazione. | 
| Implementazione |  Questa operazione abilita tutte le operazioni elencate in precedenza nella tabella. In altre parole, concede l'autorizzazione per visualizzare, distribuire e cercare l'applicazione e per elencarne le versioni.  | 

## Esempi di policy applicative
<a name="access-control-resource-based-examples"></a>

Negli esempi seguenti viene illustrato come concedere le autorizzazioni utilizzando l' AWS CLI. Per informazioni su come concedere le autorizzazioni utilizzando il Console di gestione AWS, vedere[Condivisione di un'applicazione](serverlessrepo-how-to-publish.md#share-application).

Tutti gli esempi di questa sezione utilizzano questi AWS CLI comandi per gestire le politiche di autorizzazione associate AWS Serverless Application Repository alle applicazioni:
+ [put-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/put-application-policy.html)
+ [get-application-policy](https://docs.aws.amazon.com/cli/latest/reference/serverlessrepo/get-application-policy.html)

**Topics**
+ [Esempio 1: condividere un'applicazione con un altro account](#access-control-resource-based-example-share-with-specific-account)
+ [Esempio 2: condividere pubblicamente un'applicazione](#access-control-resource-based-example-share-publicly)
+ [Esempio 3: rendere privata un'applicazione](#access-control-resource-based-example-make-private)
+ [Esempio 4: specificare più account e autorizzazioni](#access-control-resource-based-example-multiple-permissions)
+ [Esempio 5: condividere un'applicazione con tutti gli account di un'organizzazione AWS](#access-control-resource-based-example-share-organization)
+ [Esempio 6: condivisione di un'applicazione con alcuni account in un'organizzazione AWS](#access-control-resource-based-example-accounts-in-organization)
+ [Esempio 7: recupero di una policy dell'applicazione](#access-control-resource-based-example-retrieve-app-policy)
+ [Esempio 8: consentire la nidificazione delle applicazioni da parte di account specifici](#access-control-resource-based-example-nest-app-policy)

### Esempio 1: condividere un'applicazione con un altro account
<a name="access-control-resource-based-example-share-with-specific-account"></a>

Per condividere un'applicazione con un altro account specifico, ma evitare che venga condivisa con altri, specificate l'ID dell' AWS account con cui desiderate condividerla come principale. Questa operazione equivale all'impostazione dell'applicazione su *condivisa privatamente*. A tale scopo, utilizzate il seguente AWS CLI comando.

```
aws serverlessrepo put-application-policy \
--region region \
--application-id application-arn \
--statements Principals=account-id,Actions=Deploy
```

**Nota**  
Le applicazioni *condivise privatamente* possono essere utilizzate solo nella stessa AWS regione in cui viene creata l'applicazione.

### Esempio 2: condividere pubblicamente un'applicazione
<a name="access-control-resource-based-example-share-publicly"></a>

Per rendere pubblica un'applicazione, occorre condividerla con tutti specificando "\$1" come principale, come nell'esempio seguente. Le applicazioni condivise pubblicamente sono disponibili in tutte le regioni.

```
aws serverlessrepo put-application-policy \
--region region \
--application-id application-arn \
--statements Principals=*,Actions=Deploy
```

**Nota**  
Per condividere pubblicamente un'applicazione, entrambe le proprietà `SemanticVersion` e `LicenseUrl` devono essere impostate.

### Esempio 3: rendere privata un'applicazione
<a name="access-control-resource-based-example-make-private"></a>

Puoi rendere privata un'applicazione, in modo che non sia condivisa con nessuno e possa essere distribuita solo dall' AWS account che la possiede. A tal fine, è necessario eliminare i principi e le azioni previste dalla policy, che rimuove anche le autorizzazioni di altri account all'interno AWS dell'organizzazione per consentire la distribuzione dell'applicazione.

```
aws serverlessrepo put-application-policy \
--region region \
--application-id application-arn \
--statements '[]'
```

**Nota**  
Le applicazioni *private* possono essere utilizzate solo nella stessa AWS regione in cui è stata creata l'applicazione.

### Esempio 4: specificare più account e autorizzazioni
<a name="access-control-resource-based-example-multiple-permissions"></a>

È possibile concedere più autorizzazioni e concederle a più di un AWS account alla volta. A tale scopo, specifichi gli elenchi come l'entità principal e le operazioni come illustrato nell'esempio seguente.

```
aws serverlessrepo put-application-policy \
--region region \
--application-id application-arn \
--statements Principals=account-id-1,account-id-2,Actions=GetApplication,CreateCloudFormationChangeSet
```

### Esempio 5: condividere un'applicazione con tutti gli account di un'organizzazione AWS
<a name="access-control-resource-based-example-share-organization"></a>

Le autorizzazioni possono essere concesse a tutti gli utenti all'interno di un' AWS organizzazione. Puoi eseguire questa operazione specificando l'ID dell’organizzazione, come nell'esempio seguente.

```
aws serverlessrepo put-application-policy \
--region region \
--application-id application-arn \
--statements Principals=*,PrincipalOrgIDs=org-id,Actions=Deploy,UnshareApplication
```

Per ulteriori informazioni sulle AWS organizzazioni, consulta la Guida per l'*[AWS Organizations utente](https://docs.aws.amazon.com/organizations/latest/userguide/)*.

**Nota**  
Puoi specificare solo l' AWS organizzazione di cui è membro il tuo AWS account. Se provi a specificare un' AWS organizzazione di cui non sei membro, si verificherà un errore.  
Per condividere la tua candidatura con la tua AWS organizzazione, devi includere l'autorizzazione `UnshareApplication` all'azione, nel caso in cui la condivisione debba essere revocata in futuro.

### Esempio 6: condivisione di un'applicazione con alcuni account in un'organizzazione AWS
<a name="access-control-resource-based-example-accounts-in-organization"></a>

Le autorizzazioni possono essere concesse a account specifici all'interno di un' AWS organizzazione. A tale scopo, è necessario specificare un elenco di AWS account come principale e l'ID dell'organizzazione, come nell'esempio seguente.

```
aws serverlessrepo put-application-policy \
--region region \
--application-id application-arn \
--statements Principals=account-id-1,account-id-2,PrincipalOrgIDs=org-id,Actions=Deploy,UnshareApplication
```

**Nota**  
Puoi specificare solo l' AWS organizzazione di cui è membro il tuo AWS account. Se provi a specificare un' AWS organizzazione di cui non sei membro, si verificherà un errore.  
Per condividere la tua candidatura con la tua AWS organizzazione, devi includere l'autorizzazione `UnshareApplication` all'azione, nel caso in cui la condivisione debba essere revocata in futuro.

### Esempio 7: recupero di una policy dell'applicazione
<a name="access-control-resource-based-example-retrieve-app-policy"></a>

Per visualizzare la policy attuale dell'applicazione, ad esempio per verificare se al momento è condivida, si utilizza il comando `get-application-policy`, come nell'esempio seguente.

```
aws serverlessrepo get-application-policy \
--region region \
--application-id application-arn
```

### Esempio 8: consentire la nidificazione delle applicazioni da parte di account specifici
<a name="access-control-resource-based-example-nest-app-policy"></a>

Le applicazioni pubbliche possono essere nidificate da qualsiasi utente. Se desideri consentire unicamente la nidificazione delle applicazioni da parte di account specifici, devi impostare le seguenti autorizzazioni minime, come indicato nell'esempio riportato di seguito.

```
aws serverlessrepo put-application-policy \
--region region \
--application-id application-arn \
--statements Principals=account-id-1,account-id-2,Actions=GetApplication,CreateCloudFormationTemplate
```