Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Domain-Richtlinien
CodeArtifact unterstützt die Verwendung ressourcenbasierter Berechtigungen zur Zugriffskontrolle. Mit ressourcenbasierten Berechtigungen können Sie angeben, wer Zugriff auf eine Ressource hat und welche Aktionen sie mit ihr ausführen können. Standardmäßig kann nur das AWS Konto, dem die Domain gehört, Repositorys in der Domain erstellen und darauf zugreifen. Sie können ein Richtliniendokument auf eine Domain anwenden, um anderen IAM Prinzipalen den Zugriff darauf zu ermöglichen.
Weitere Informationen finden Sie unter Richtlinien und Berechtigungen und Identitätsbasierte Richtlinien und Ressourcenbasierte Richtlinien.
Themen
Aktivieren Sie den kontoübergreifenden Zugriff auf eine Domain
Eine Ressourcenrichtlinie ist eine Textdatei im JSON Format. In der Datei müssen ein Hauptdarsteller (Akteur), eine oder mehrere Aktionen und ein Effekt (Allow
oderDeny
) angegeben werden. Um ein Repository in einer Domäne zu erstellen, die einem anderen Konto gehört, muss dem Prinzipal die entsprechenden CreateRepository
Berechtigungen für die Domänenressource erteilt werden.
Die folgende Ressourcenrichtlinie gewährt dem Konto beispielsweise die 123456789012
Berechtigung, ein Repository in der Domäne zu erstellen.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codeartifact:CreateRepository" ], "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:root" }, "Resource": "*" } ] }
Um das Erstellen von Repositorys mit Tags zu ermöglichen, müssen Sie die codeartifact:TagResource
entsprechende Berechtigung angeben. Dadurch erhält das Konto auch Zugriff auf das Hinzufügen von Tags zur Domain und allen darin enthaltenen Repositorys.
Die Domänenrichtlinie wird für alle Operationen mit der Domain und allen Ressourcen innerhalb der Domain bewertet. Das bedeutet, dass die Domänenrichtlinie verwendet werden kann, um Berechtigungen auf Repositorys und Pakete in der Domäne anzuwenden. Wenn das Resource
Element auf gesetzt ist*
, gilt die Anweisung für alle Ressourcen in der Domäne. Wenn die obige Richtlinie beispielsweise auch codeartifact:DescribeRepository
in der Liste der zulässigen IAM Aktionen enthalten wäre, würde die Richtlinie den Aufruf DescribeRepository
jedes Repositorys in der Domäne zulassen. Eine Domänenrichtlinie kann verwendet werden, um Berechtigungen auf bestimmte Ressourcen in der Domäne anzuwenden, indem bestimmte Ressourcen ARNs in dem Resource
Element verwendet werden.
Anmerkung
Sowohl Domänen- als auch Repository-Richtlinien können zur Konfiguration von Berechtigungen verwendet werden. Wenn beide Richtlinien vorhanden sind, werden beide Richtlinien bewertet und eine Aktion ist zulässig, sofern eine der Richtlinien dies zulässt. Weitere Informationen finden Sie unter Interaktion zwischen Repository- und Domänenrichtlinien.
Um auf Pakete in einer Domäne zuzugreifen, die einem anderen Konto gehört, muss einem Prinzipal die entsprechenden GetAuthorizationToken
Berechtigungen für die Domänenressource erteilt werden. Auf diese Weise kann der Domaininhaber kontrollieren, welche Konten die Inhalte von Repositorys in der Domain lesen können.
Die folgende Ressourcenrichtlinie gewährt dem Konto beispielsweise die 123456789012
Erlaubnis, ein Authentifizierungstoken für jedes Repository in der Domain abzurufen.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codeartifact:GetAuthorizationToken" ], "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
123456789012
:root" }, "Resource": "*" } ] }
Anmerkung
Einem Principal, der Pakete von einem Repository-Endpunkt abrufen möchte, muss zusätzlich zu der ReadFromRepository
Berechtigung für die Domäne auch die Berechtigung für die Repository-Ressource GetAuthorizationToken
erteilt werden. In ähnlicher Weise muss einem Prinzipal, der Pakete auf einem Repository-Endpunkt veröffentlichen möchte, zusätzlich zu GetAuthorizationToken
die PublishPackageVersion
entsprechende Berechtigung erteilt werden.
Weitere Informationen zu den PublishPackageVersion
Berechtigungen ReadFromRepository
und finden Sie unter Repository-Richtlinien.
Beispiel für eine Domänenrichtlinie
Wenn mehrere Konten eine Domäne verwenden, sollten den Konten grundlegende Berechtigungen erteilt werden, damit sie die Domäne vollständig nutzen können. Die folgende Ressourcenrichtlinie listet eine Reihe von Berechtigungen auf, die die vollständige Nutzung der Domäne ermöglichen.
{ "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" } } ] }
Anmerkung
Sie müssen keine Domänenrichtlinie erstellen, wenn eine Domäne und alle zugehörigen Repositorys einem einzigen Konto gehören und nur von diesem Konto aus verwendet werden müssen.
Beispiel für eine Domänenrichtlinie mit AWS Organizations
Sie können den aws:PrincipalOrgID
Bedingungsschlüssel verwenden, um von allen Konten in Ihrer Organisation aus Zugriff auf eine CodeArtifact Domain zu gewähren. Gehen Sie dazu wie folgt vor.
{ "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"]} } } }
Weitere Informationen zur Verwendung des aws:PrincipalOrgID
Bedingungsschlüssels finden Sie unter AWSGlobal Condition Context Keys im IAMBenutzerhandbuch.
Legen Sie eine Domänenrichtlinie fest
Sie können den put-domain-permissions-policy
Befehl verwenden, um eine Richtlinie an eine Domain anzuhängen.
aws codeartifact put-domain-permissions-policy --domain
my_domain
--domain-owner111122223333
\ --policy-documentfile://</PATH/TO/policy.json>
Wenn Sie aufrufenput-domains-permissions-policy
, wird die Ressourcenrichtlinie für die Domain bei der Auswertung von Berechtigungen ignoriert. Dadurch wird sichergestellt, dass sich der Besitzer einer Domain nicht selbst aus der Domain aussperren kann, was ihn daran hindern würde, die Ressourcenrichtlinie zu aktualisieren.
Anmerkung
Sie können einem anderen AWS Konto keine Berechtigungen zum Aktualisieren der Ressourcenrichtlinie für eine Domäne mithilfe einer Ressourcenrichtlinie gewähren, da die Ressourcenrichtlinie beim Aufrufen ignoriert wird put-domain-permissions-policy.
Beispielausgabe:
{ "policy": { "resourceArn": "arn:aws:codeartifact:
region-id
:111122223333
:domain/my_domain
", "document": "{ ...policy document content...}
", "revision": "MQlyyTQRASRU3HB58gBtSDHXG7Q3hvxxxxxxx=
" } }
Die Ausgabe des Befehls enthält den Amazon-Ressourcennamen (ARN) der Domain-Ressource, den vollständigen Inhalt des Richtliniendokuments und eine Revisions-ID. Die Revisionskennung kann put-domain-permissions-policy
mithilfe der --policy-revision
Option an übergeben werden. Dadurch wird sichergestellt, dass eine bekannte Version des Dokuments überschrieben wird und nicht eine neuere Version, die von einem anderen Autor festgelegt wurde.
Lesen Sie eine Domänenrichtlinie
Verwenden Sie den get-domain-permissions-policy
Befehl, um eine vorhandene Version eines Richtliniendokuments zu lesen. Um die Ausgabe aus Gründen der Lesbarkeit zu formatieren, verwenden Sie das --output
und --query policy.document
zusammen mit dem json.tool
Python-Modul wie folgt.
aws codeartifact get-domain-permissions-policy --domain
my_domain
--domain-owner111122223333
\ --output text --query policy.document | python -mjson.tool
Beispielausgabe:
{ "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" } } ] }
Löschen Sie eine Domänenrichtlinie
Verwenden Sie den delete-domain-permissions-policy
Befehl, um eine Richtlinie aus einer Domain zu löschen.
aws codeartifact delete-domain-permissions-policy --domain
my_domain
--domain-owner111122223333
Das Format der Ausgabe entspricht dem der delete-domain-permissions-policy
Befehle get-domain-permissions-policy
und.