

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

# Criteri di dominio
<a name="domain-policies"></a>

CodeArtifact supporta l'utilizzo di autorizzazioni basate sulle risorse per controllare l'accesso. Le autorizzazioni basate sulle risorse consentono di specificare chi ha accesso a una risorsa e quali azioni può eseguire su di essa. Per impostazione predefinita, solo l'account AWS proprietario del dominio può creare e accedere ai repository nel dominio. Puoi applicare un documento di policy a un dominio per consentire ad altri responsabili IAM di accedervi.

Per ulteriori informazioni, consulta [Politiche e autorizzazioni e Politiche](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) basate sull'[identità e Politiche basate sulle risorse](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html).

**Topics**
+ [Abilita l'accesso tra più account a un dominio](#enabling-cross-acount-access-to-a-domain)
+ [Esempio di policy di dominio](#domain-policy-example)
+ [Esempio di politica di dominio con AWS Organizations](#domain-policy-example-with-aws-organizations)
+ [Imposta una politica di dominio](#set-domain-policy)
+ [Leggi una politica di dominio](#reading-a-domain-policy)
+ [Eliminare una politica di dominio](#deleting-a-domain-policy)

## Abilita l'accesso tra più account a un dominio
<a name="enabling-cross-acount-access-to-a-domain"></a>

Una politica delle risorse è un file di testo in formato JSON. Il file deve specificare un principale (attore), una o più azioni e un effetto (`Allow`o`Deny`). Per creare un repository in un dominio di proprietà di un altro account, al principale deve essere concessa l'`CreateRepository`autorizzazione sulla risorsa del *dominio*.

Ad esempio, la seguente politica in materia di risorse concede all'account l'`123456789012`autorizzazione a creare un repository nel dominio.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "codeartifact:CreateRepository"
            ],
            "Effect": "Allow",
            "Principal": {
                 "AWS": "arn:aws:iam::{{123456789012}}:root"
            },
            "Resource": "*"
        }
    ]
}
```

------

Per consentire la creazione di repository con tag, è necessario includere l'autorizzazione. `codeartifact:TagResource` Ciò consentirà inoltre all'account di aggiungere tag al dominio e a tutti i repository in esso contenuti.

La politica del dominio viene valutata per tutte le operazioni relative al dominio e a tutte le risorse all'interno del dominio. Ciò significa che la politica del dominio può essere utilizzata per applicare le autorizzazioni ai repository e ai pacchetti del dominio. Quando l'`Resource`elemento è impostato su`*`, l'istruzione si applica a tutte le risorse del dominio. Ad esempio, se la policy di cui sopra fosse inclusa anche `codeartifact:DescribeRepository` nell'elenco delle azioni IAM consentite, la policy consentirebbe di richiamare `DescribeRepository` ogni repository del dominio. Una policy di dominio può essere utilizzata per applicare autorizzazioni a risorse specifiche del dominio utilizzando una risorsa specifica ARNs nell'`Resource`elemento.

**Nota**  
È possibile utilizzare sia le politiche di dominio che quelle di repository per configurare le autorizzazioni. Quando sono presenti entrambe le politiche, entrambe verranno valutate e, se consentita da una delle due politiche, sarà consentita un'azione. Per ulteriori informazioni, consulta [Interazione tra le politiche del repository e del dominio](repo-policies.md#interaction-repo-domain-policies).

Per accedere ai pacchetti in un dominio di proprietà di un altro account, a un principale deve essere concessa l'`GetAuthorizationToken`autorizzazione sulla *risorsa del dominio*. Ciò consente al proprietario del dominio di esercitare il controllo sugli account che possono leggere il contenuto degli archivi del dominio.

Ad esempio, la seguente politica in materia di risorse concede all'account l'`123456789012`autorizzazione a recuperare un token di autenticazione per qualsiasi repository del dominio.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "codeartifact:GetAuthorizationToken"
            ],
            "Effect": "Allow",
            "Principal": {
                 "AWS": "arn:aws:iam::{{123456789012}}:root"
            },
            "Resource": "*"
        }
    ]
}
```

------

**Nota**  
A un principale che desidera recuperare pacchetti da un endpoint del repository deve essere concessa l'`ReadFromRepository`autorizzazione sulla risorsa del repository oltre all'autorizzazione sul dominio. `GetAuthorizationToken` Allo stesso modo, a un principale che desidera pubblicare pacchetti su un endpoint del repository deve essere concessa l'autorizzazione in aggiunta a. `PublishPackageVersion` `GetAuthorizationToken`   
[Per ulteriori informazioni sulle `PublishPackageVersion` autorizzazioni `ReadFromRepository` e, vedere Repository Policies.](repo-policies.md)

## Esempio di policy di dominio
<a name="domain-policy-example"></a>

Quando più account utilizzano un dominio, è necessario concedere agli account un set di autorizzazioni di base per consentire il pieno utilizzo del dominio. La seguente politica delle risorse elenca una serie di autorizzazioni che consentono il pieno utilizzo del dominio.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BasicDomainPolicy",
            "Action": [
                "codeartifact:GetDomainPermissionsPolicy",
                "codeartifact:ListRepositoriesInDomain",
                "codeartifact:GetAuthorizationToken",
                "codeartifact:DescribeDomain",
                "codeartifact:CreateRepository"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Principal": {
                "AWS": "arn:aws:iam::{{123456789012}}:root"
            }
        }
    ]
}
```

------

**Nota**  
Non è necessario creare una politica di dominio se un dominio e tutti i relativi repository sono di proprietà di un singolo account e devono essere utilizzati solo da quell'account.

## Esempio di politica di dominio con AWS Organizations
<a name="domain-policy-example-with-aws-organizations"></a>

È possibile utilizzare la chiave di `aws:PrincipalOrgID` condizione per concedere l'accesso a un CodeArtifact dominio da tutti gli account dell'organizzazione, come segue.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Sid": "DomainPolicyForOrganization",
        "Effect": "Allow",
        "Principal": "*",
        "Action": [
             "codeartifact:GetDomainPermissionsPolicy",
             "codeartifact:ListRepositoriesInDomain",
             "codeartifact:GetAuthorizationToken",
             "codeartifact:DescribeDomain",
             "codeartifact:CreateRepository"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": { "aws:PrincipalOrgID":["o-xxxxxxxxxxx"]}
        }
    }
}
```

------

Per ulteriori informazioni sull'utilizzo della chiave `aws:PrincipalOrgID` condition, consulta [AWS Global Condition Context Keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) nella *IAM User Guide*.

## Imposta una politica di dominio
<a name="set-domain-policy"></a>

È possibile utilizzare il `put-domain-permissions-policy` comando per allegare una politica a un dominio.

```
aws codeartifact put-domain-permissions-policy --domain {{my_domain}} --domain-owner {{111122223333}} \
 --policy-document {{file://</PATH/TO/policy.json>}}
```

Quando si chiama`put-domains-permissions-policy`, la politica delle risorse sul dominio viene ignorata durante la valutazione delle autorizzazioni. Ciò garantisce che il proprietario di un dominio non possa escludersi dal dominio, il che gli impedirebbe di aggiornare la politica delle risorse.

**Nota**  
 Non è possibile concedere le autorizzazioni a un altro AWS account per aggiornare la politica delle risorse su un dominio utilizzando una politica delle risorse, poiché la politica delle risorse viene ignorata durante la chiamata. put-domain-permissions-policy 

Output di esempio:

```
{
    "policy": {
        "resourceArn": "arn:aws:codeartifact:{{region-id}}:{{111122223333}}:domain/{{my_domain}}",
        "document": "{{{ ...policy document content...}}}",
        "revision": "{{MQlyyTQRASRU3HB58gBtSDHXG7Q3hvxxxxxxx=}}"
    }
}
```

L'output del comando contiene l'Amazon Resource Name (ARN) della risorsa di dominio, il contenuto completo del documento di policy e un identificatore di revisione. L'identificatore di revisione può essere passato a utilizzando l'opzione. `put-domain-permissions-policy` `--policy-revision` Ciò garantisce che una revisione nota del documento venga sovrascritta e non una versione più recente impostata da un altro autore.

## Leggi una politica di dominio
<a name="reading-a-domain-policy"></a>

Per leggere una versione esistente di un documento di policy, usa il `get-domain-permissions-policy` comando. Per formattare l'output in modo da renderlo leggibile, usa `--output` e `--query policy.document` insieme al modulo `json.tool` Python, come segue.

```
aws codeartifact get-domain-permissions-policy --domain {{my_domain}} --domain-owner {{111122223333}} \
   --output text --query policy.document | python -m {{json.tool}}
```

Output di esempio:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BasicDomainPolicy",
            "Action": [
                "codeartifact:GetDomainPermissionsPolicy",
                "codeartifact:ListRepositoriesInDomain",
                "codeartifact:GetAuthorizationToken",
                "codeartifact:CreateRepository"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:root"
            }
        }
    ]
}
```

------

## Eliminare una politica di dominio
<a name="deleting-a-domain-policy"></a>

Usa il `delete-domain-permissions-policy` comando per eliminare una politica da un dominio.

```
aws codeartifact delete-domain-permissions-policy --domain {{my_domain}} --domain-owner {{111122223333}}
```

Il formato dell'output è lo stesso dei `delete-domain-permissions-policy` comandi `get-domain-permissions-policy` and.