

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.

# Geben Sie SageMaker Notebook-Instances temporären Zugriff auf ein CodeCommit Repository in einem anderen AWS-Konto
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account"></a>

*Helge Aufderheide, Amazon Web Services*

## Zusammenfassung
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-summary"></a>

Dieses Muster zeigt, wie Amazon SageMaker Notebook-Instances und Benutzern temporären Zugriff auf ein CodeCommit AWS-Repository gewährt wird, das sich in einem anderen AWS-Konto befindet. Dieses Muster zeigt auch, wie Sie detaillierte Berechtigungen für bestimmte Aktionen gewähren können, die jede Entität in jedem Repository ausführen kann.

Organizations speichern CodeCommit Repositorys häufig in einem anderen AWS-Konto als dem Konto, das ihre Entwicklungsumgebung hostet. Diese Einrichtung mit mehreren Konten hilft bei der Kontrolle des Zugriffs auf die Repositorys und reduziert das Risiko, dass sie versehentlich gelöscht werden. Um diese kontoübergreifenden Berechtigungen zu gewähren, empfiehlt es sich, AWS Identity and Access Management (IAM) -Rollen zu verwenden. Anschließend können vordefinierte IAM-Identitäten in jedem AWS-Konto vorübergehend die Rollen übernehmen, um eine kontrollierte Vertrauenskette zwischen den Konten aufzubauen.

**Anmerkung**  
Sie können ein ähnliches Verfahren anwenden, um anderen IAM-Identitäten kontoübergreifenden Zugriff auf ein Repository zu gewähren. CodeCommit Weitere Informationen finden [Sie unter Kontenübergreifendes Zugriff auf ein CodeCommit AWS-Repository mithilfe von Rollen konfigurieren](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account.html) im * CodeCommit AWS-Benutzerhandbuch*.

## Voraussetzungen und Einschränkungen
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto mit einem CodeCommit Repository (*Konto A*)
+ Ein zweites aktives AWS-Konto mit einer SageMaker Notebook-Instance (*Konto B*)
+ Ein AWS-Benutzer mit ausreichenden Berechtigungen zum Erstellen und Ändern von IAM-Rollen in Konto A
+ Ein zweiter AWS-Benutzer mit ausreichenden Berechtigungen zum Erstellen und Ändern von IAM-Rollen in Konto B

## Architektur
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-architecture"></a>

Das folgende Diagramm zeigt einen Beispiel-Workflow, um einer SageMaker Notebook-Instance und Benutzern in einem AWS-Konto kontoübergreifenden Zugriff auf ein CodeCommit Repository zu gewähren:

![Workflow für kontoübergreifenden Zugriff auf CodeCommit](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/54d0fdb3-6d25-4433-9f67-c87846633d61/images/97a799af-ce88-4495-a61c-d0cd22493ce2.png)


Das Diagramm zeigt den folgenden Workflow:

1. Die AWS-Benutzerrolle und die SageMaker Notebook-Instance-Rolle in Konto B gehen von einem [benannten Profil](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-using-profiles) aus.

1. Die Berechtigungsrichtlinie des benannten Profils spezifiziert eine CodeCommit Zugriffsrolle in Konto A, die das Profil dann annimmt.

1. Die Vertrauensrichtlinie der CodeCommit Zugriffsrolle in Konto A ermöglicht es dem benannten Profil in Konto B, die CodeCommit Zugriffsrolle zu übernehmen.

1. Die IAM-Berechtigungsrichtlinie des CodeCommit Repositorys in Konto A ermöglicht der CodeCommit Zugriffsrolle den Zugriff auf das CodeCommit Repository.

**Technologie-Stack**
+ CodeCommit
+ Git
+ IAM
+ pip
+ SageMaker

## Tools
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-tools"></a>
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) ist ein Versionskontrollservice, mit dem Sie Git-Repositorys privat speichern und verwalten können, ohne Ihr eigenes Quellcodeverwaltungssystem verwalten zu müssen.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [Git](https://git-scm.com/) ist ein verteiltes Versionskontrollsystem zur Nachverfolgung von Änderungen im Quellcode während der Softwareentwicklung.
+ [git-remote-codecommit](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-git-remote-codecommit.html)ist ein Hilfsprogramm, mit dem du Code aus CodeCommit Repositorys pushen und abrufen kannst, indem es Git erweitert.
+ [pip](https://pypi.org/project/pip/) ist der Paket-Installer für Python. Sie können pip verwenden, um Pakete aus dem Python-Paketindex und anderen Indizes zu installieren.

## Best Practices
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-best-practices"></a>

Wenn Sie Berechtigungen mit IAM-Richtlinien festlegen, stellen Sie sicher, dass Sie nur die für die Ausführung einer Aufgabe erforderlichen Berechtigungen gewähren. Weitere Informationen finden Sie unter [Geringste Berechtigungen anwenden](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) in der IAM-Dokumentation.

Achten Sie bei der Implementierung dieses Musters darauf, dass Sie wie folgt vorgehen:
+ Vergewissern Sie sich, dass die IAM-Prinzipien nur über die Berechtigungen verfügen, die für die Durchführung bestimmter, erforderlicher Aktionen innerhalb jedes Repositorys erforderlich sind. Es wird beispielsweise empfohlen, genehmigten IAM-Prinzipien die Übertragung und Zusammenführung von Änderungen an bestimmten Repository-Branches zu gestatten, aber nur Zusammenführungen mit geschützten Branches anzufordern. 
+ Vergewissern Sie sich, dass den IAM-Prinzipien je nach ihren jeweiligen Rollen und Verantwortlichkeiten für jedes Projekt unterschiedliche IAM-Rollen zugewiesen werden. Ein Entwickler hat beispielsweise andere Zugriffsberechtigungen als ein Release-Manager oder AWS-Administrator. 

## Epen
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-epics"></a>

### Konfigurieren Sie die IAM-Rollen
<a name="configure-the-iam-roles"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die CodeCommit Zugriffsrolle und die Berechtigungsrichtlinie. | Um den in diesem Epos dokumentierten manuellen Einrichtungsprozess zu automatisieren, können**** Sie eine [ CloudFormation AWS-Vorlage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) verwenden.Gehen Sie in dem Konto, das das CodeCommit Repository enthält (*Konto A*), wie folgt vor:1. [Erstellen Sie eine IAM-Rolle](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account-administrator-a.html#cross-account-create-role-a), die von der SageMaker Notebook-Instanzrolle in Konto B übernommen werden kann.<br />2. [Erstellen Sie eine IAM-Richtlinie](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account-administrator-a.html#cross-account-create-policy-a), die Zugriff auf das Repository gewährt, und [fügen Sie die Richtlinie der Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) hinzu. Wählen Sie nur zu Testzwecken die von [AWSCodeCommitPowerUser](https://docs.aws.amazon.com/codecommit/latest/userguide/security-iam-awsmanpol.html#managed-policies-poweruser)AWS verwaltete Richtlinie. Diese Richtlinie gewährt alle [CodeCommit Berechtigungen](https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-permissions-reference.html) mit Ausnahme der Möglichkeit, Ressourcen zu löschen.<br />3. [Ändern Sie die Vertrauensrichtlinie der Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy), sodass Konto B als vertrauenswürdige Entität aufgeführt wird.Bevor Sie dieses Setup in Ihre Produktionsumgebung verschieben, empfiehlt es sich, Ihre eigene IAM-Richtlinie zu schreiben, die Berechtigungen mit den geringsten Rechten [anwendet.](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) Weitere Informationen finden Sie im Abschnitt **Zusätzliche Informationen dieses Musters**. | Allgemein AWS, AWS DevOps | 
| Erteilen Sie der Rolle der SageMaker Notebook-Instance in Konto B die Berechtigungen, um die CodeCommit Zugriffsrolle in Konto A zu übernehmen. | Gehen Sie in dem Konto, das die IAM-Rolle der SageMaker Notebook-Instanz enthält (*Konto B),* wie folgt vor:1. Erstellen Sie eine IAM-Richtlinie, die es einer IAM-Rolle oder einem IAM-Benutzer ermöglicht, die CodeCommit Zugriffsrolle in Konto A zu übernehmen.<br />**Beispiel für eine IAM-Berechtigungsrichtlinie, die es einer IAM-Rolle oder einem IAM-Benutzer ermöglicht, eine kontoübergreifende Rolle anzunehmen**<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />      {<br />    "Sid": "VisualEditor0",<br />    "Effect": "Allow",<br />    "Action": "sts:AssumeRole",<br />    "Resource": "arn:aws:iam:::accountA_ID:role/accountArole_ID"<br />  }<br />}</pre><br />2. Ordnen Sie die Richtlinie der Rolle Ihrer SageMaker Notebook-Instanz in Konto B zu.<br />3. Lassen Sie die Rolle der SageMaker Notebook-Instanz in Konto B die CodeCommit Zugriffsrolle in Konto A übernehmen.Informationen zum Amazon-Ressourcennamen (ARN) Ihres Repositorys finden Sie unter [ CodeCommit Repository-Details anzeigen](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-view-repository-details.html) im * CodeCommit AWS-Benutzerhandbuch*. | Allgemein AWS, AWS DevOps | 

### Richten Sie Ihre SageMaker Notebook-Instanz in Konto B ein
<a name="set-up-your-sagemaker-notebook-instance-in-account-b"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie ein Benutzerprofil auf der SageMaker AWS-Notebook-Instance ein, um die Rolle in Konto A zu übernehmen.  | [Stellen Sie sicher, dass Sie die neueste Version der AWS-Befehlszeilenschnittstelle (AWS CLI) installiert haben](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).Gehen Sie in dem Konto, das die SageMaker Notebook-Instance enthält (*Konto B),* wie folgt vor:1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die [SageMaker -Konsole](https://console.aws.amazon.com/sagemaker/).<br />2. [Greifen Sie auf Ihre SageMaker Notebook-Instanz](https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-access-ws.html) zu. Die Jupyter-Schnittstelle wird geöffnet.<br />3. **Wählen Sie **Neu** und dann Terminal.** [In Ihrer Jupyter-Umgebung wird ein neues Terminalfenster geöffnet](https://jupyterlab.readthedocs.io/en/stable/user/terminal.html).<br />4. **Navigieren Sie zur Datei SageMaker \~/.aws/config der Notebook-Instanz.** Fügen Sie dann der Datei ein Benutzerprofil hinzu, indem Sie die folgende Anweisung eingeben:<pre>------.aws/config--------------<br />[profile remoterepouser]<br />role_arn = arn:aws:iam::<ID of Account A>:role/<rolename><br />role_session_name = remoteaccesssession<br />region = eu-west-1<br />credential_source  = Ec2InstanceMetadata<br />----------------------------------</pre> | Allgemein AWS, AWS DevOps | 
| Installieren Sie das Hilfsprogramm git-remote-codecommit. | Folgen Sie den Anweisungen in [Schritt 2: Installation git-remote-codecommit](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-git-remote-codecommit.html#setting-up-git-remote-codecommit-install) im * CodeCommit AWS-Benutzerhandbuch*. | Datenwissenschaftler | 

### Greifen Sie auf das Repository zu
<a name="access-the-repository"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Greifen Sie mit Git-Befehlen oder auf das CodeCommit Repository zu SageMaker. | **Um Git zu verwenden**<br />IAM-Prinzipale, die die Rolle der SageMaker Notebook-Instanz in Konto B übernehmen, können jetzt Git-Befehle ausführen, um auf das CodeCommit Repository in Konto A zuzugreifen. Benutzer können beispielsweise Befehle wie `git clone``git pull`, und ausführen. `git push`<br />Anweisungen finden Sie unter [Connect zu einem CodeCommit AWS-Repository](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-connect.html) herstellen im * CodeCommit AWS-Benutzerhandbuch*.<br />Informationen zur Verwendung von Git mit CodeCommit finden Sie unter [Erste Schritte mit AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/getting-started-cc.html) *im CodeCommit AWS-Benutzerhandbuch*.<br />**Zu verwenden SageMaker**<br />Um Git von der SageMaker Konsole aus zu verwenden, müssen Sie Git erlauben, Anmeldeinformationen aus Ihrem CodeCommit Repository abzurufen. Anweisungen finden Sie in der SageMaker Dokumentation unter [Verknüpfen eines CodeCommit Repositorys in einem anderen AWS-Konto mit einer Notebook-Instance](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-git-cross.html). | Git, Bash-Konsole | 

## Zugehörige Ressourcen
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-resources"></a>
+ [Kontenübergreifenden Zugriff auf ein CodeCommit AWS-Repository mithilfe von Rollen konfigurieren](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account.html) ( CodeCommit AWS-Dokumentation)
+ [IAM-Tutorial: Delegieren des Zugriffs über AWS-Konten hinweg mithilfe von IAM-Rollen (IAM-Dokumentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html))

## Zusätzliche Informationen
<a name="give-sagemaker-notebook-instances-temporary-access-to-a-codecommit-repository-in-another-aws-account-additional"></a>

**Beschränken CodeCommit von Berechtigungen auf bestimmte Aktionen**

Um die Aktionen einzuschränken, die ein IAM-Principal im CodeCommit Repository ausführen kann, ändern Sie die Aktionen, die in der CodeCommit Zugriffsrichtlinie zulässig sind.

Weitere Informationen zu CodeCommit API-Vorgängen finden Sie in der [CodeCommit Berechtigungsreferenz](https://docs.aws.amazon.com/codecommit/latest/userguide/auth-and-access-control-permissions-reference.html) im * CodeCommit AWS-Benutzerhandbuch*.

**Anmerkung**  
Sie können die von [AWSCodeCommitPowerUser](https://docs.aws.amazon.com/codecommit/latest/userguide/security-iam-awsmanpol.html#managed-policies-poweruser)AWS verwaltete Richtlinie auch an Ihren Anwendungsfall anpassen.

**Beschränkung der CodeCommit Berechtigungen auf bestimmte Repositorys**

Gehen Sie wie folgt vor, um eine mandantenfähige Umgebung zu erstellen, in der mehr als ein Code-Repository nur bestimmten Benutzern zugänglich ist:

1. Erstellen Sie mehrere CodeCommit Zugriffsrollen in Konto A. Konfigurieren Sie anschließend die Vertrauensrichtlinie jeder Zugriffsrolle so, dass bestimmte Benutzer in Konto B die Rolle übernehmen können.

1. Schränken Sie ein, welche Code-Repositorys jede Rolle annehmen kann, indem Sie der Richtlinie jeder CodeCommit Zugriffsrolle die Bedingung **„Ressource“** hinzufügen.

**Beispiel für eine „Ressource“ -Bedingung, die den Zugriff eines IAM-Prinzipals auf ein bestimmtes Repository einschränkt CodeCommit **

```
"Resource" : [<REPOSITORY_ARN>,<REPOSITORY_ARN> ]
```

**Anmerkung**  
Um mehrere Code-Repositorys in demselben AWS-Konto identifizieren und unterscheiden zu können, können Sie den Namen der Repositorys unterschiedliche Präfixe zuweisen. ****Beispielsweise können Sie Code-Repositorys mit Präfixen benennen, die unterschiedlichen Entwicklergruppen zugeordnet sind, wie myproject-subproject1-repo1 und myproject-subproject2-repo1.**** Anschließend können Sie eine IAM-Rolle für jede Entwicklergruppe auf der Grundlage der ihnen zugewiesenen Präfixe erstellen. **Sie könnten beispielsweise eine Rolle mit dem Namen **myproject-subproject1-repoaccess erstellen und ihr Zugriff auf alle Code-Repositorys** gewähren, die das Präfix myproject-subproject1 enthalten.**

**Beispiel für eine „Ressource“ -Bedingung, die sich auf einen Code-Repository-ARN bezieht, der ein bestimmtes Präfix enthält**

```
"Resource" : arn:aws:codecommit:<region>:<account-id>:myproject-subproject1-*
```