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à.
Politiche di dominio
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'AWSaccount proprietario del dominio può creare e accedere ai repository nel dominio. È possibile applicare un documento di policy a un dominio per consentire ad altri IAM responsabili di accedervi.
Per ulteriori informazioni, vedere Politiche e autorizzazioni e Politiche basate sull'identità e Politiche basate sulle risorse.
Argomenti
Abilita l'accesso tra più account a un dominio
Una politica delle risorse è un file di testo in JSON formato. Il file deve specificare un protagonista (attore), una o più azioni e un effetto (Allow
oDeny
). 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.
{ "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 politica di cui sopra è inclusa anche codeartifact:DescribeRepository
nell'elenco delle IAM azioni consentite, la politica consentirebbe di effettuare chiamate DescribeRepository
su ogni repository del dominio. Una politica 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.
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.
{ "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
Esempio di policy di dominio
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.
{ "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
È possibile utilizzare la chiave di aws:PrincipalOrgID
condizione per concedere l'accesso a un CodeArtifact dominio da tutti gli account dell'organizzazione, come segue.
{ "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 di aws:PrincipalOrgID
condizione, consulta AWSGlobal Condition Context Keys nella Guida per l'IAMutente.
Imposta una politica di dominio
È 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-owner111122223333
\ --policy-documentfile://</PATH/TO/policy.json>
Quando si chiamaput-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 put-domain-permissions-policy
utilizzando l'opzione. --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
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-owner111122223333
\ --output text --query policy.document | python -mjson.tool
Output di esempio:
{ "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
Usa il delete-domain-permissions-policy
comando per eliminare una politica da un dominio.
aws codeartifact delete-domain-permissions-policy --domain
my_domain
--domain-owner111122223333
Il formato dell'output è lo stesso dei delete-domain-permissions-policy
comandi get-domain-permissions-policy
and.