Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS - AWS IoT Greengrass

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.

Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS

AWS IoT Greengrass Kerngeräte verwenden den Anbieter AWS IoT Core für Anmeldeinformationen, um Anrufe an Dienste zu autorisieren. AWS Der Anbieter AWS IoT Core für Anmeldeinformationen ermöglicht es Geräten, ihre X.509-Zertifikate als eindeutige Geräteidentität zur Authentifizierung AWS von Anfragen zu verwenden. Dadurch entfällt die Notwendigkeit, eine AWS Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel auf Ihren AWS IoT Greengrass Kerngeräten zu speichern. Weitere Informationen finden Sie im AWS IoT Core Entwicklerhandbuch unter Autorisieren von direkten Aufrufen von AWS Diensten.

Wenn Sie die AWS IoT Greengrass Core-Software ausführen, können Sie wählen, ob Sie die AWS Ressourcen bereitstellen möchten, die das Kerngerät benötigt. Dazu gehört auch die Rolle AWS Identity and Access Management (IAM), die Ihr Kerngerät über den Anbieter für AWS IoT Core Anmeldeinformationen annimmt. Verwenden Sie das --provision true Argument, um eine Rolle und Richtlinien zu konfigurieren, die es dem Kerngerät ermöglichen, temporäre AWS Anmeldeinformationen abzurufen. Dieses Argument konfiguriert auch einen AWS IoT Rollenalias, der auf diese IAM Rolle verweist. Sie können den Namen der IAM Rolle und den AWS IoT Rollenalias angeben, die verwendet werden sollen. Wenn Sie diese anderen Namensparameter --provision true ohne diese anderen Namensparameter angeben, erstellt und verwendet das Greengrass-Core-Gerät die folgenden Standardressourcen:

  • IAMRolle: GreengrassV2TokenExchangeRole

    Diese Rolle hat eine benannte Richtlinie GreengrassV2TokenExchangeRoleAccess und ein Vertrauensverhältnis, das es ermöglicht, diese Rolle credentials.iot.amazonaws.com zu übernehmen. Die Richtlinie umfasst die Mindestberechtigungen für das Kerngerät.

    Wichtig

    Diese Richtlinie beinhaltet nicht den Zugriff auf Dateien in S3-Buckets. Sie müssen der Rolle Berechtigungen hinzufügen, damit Kerngeräte Komponentenartefakte aus S3-Buckets abrufen können. Weitere Informationen finden Sie unter Erlauben Sie den Zugriff auf S3-Buckets für Komponentenartefakte.

  • AWS IoT Rollen-Alias: GreengrassV2TokenExchangeRoleAlias

    Dieser Rollenalias bezieht sich auf die IAM Rolle.

Weitere Informationen finden Sie unter Schritt 3: Installieren derAWS IoT Greengrass Core-Software: Installieren der Kern-Software: Installieren.

Sie können den Rollenalias auch für ein vorhandenes Core-Gerät festlegen. Konfigurieren Sie dazu den iotRoleAlias Konfigurationsparameter der Greengrass Nucleus-Komponente.

Sie können temporäre AWS Anmeldeinformationen für diese IAM Rolle erwerben, um AWS Operationen in Ihren benutzerdefinierten Komponenten auszuführen. Weitere Informationen finden Sie unter Interagieren mit -AWSServices.

Berechtigungen für Servicerollen für Kerngeräte

Die Rolle ermöglicht es dem folgenden Dienst, die Rolle zu übernehmen:

  • credentials.iot.amazonaws.com

Wenn Sie die AWS IoT Greengrass Core-Software verwenden, um diese Rolle zu erstellen, verwendet sie die folgende Berechtigungsrichtlinie, damit Core-Geräte eine Verbindung herstellen und Protokolle an diese senden können AWS. Der Name der Richtlinie ist standardmäßig der Name der IAM Rolle, der mit Access endet. Wenn Sie beispielsweise den IAM Standardrollennamen verwenden, lautet der Name dieser Richtlinie. GreengrassV2TokenExchangeRoleAccess

Greengrass nucleus v2.5.0 and later
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
v2.4.x
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:DescribeCertificate", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
Earlier than v2.4.0
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:DescribeCertificate", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive", "s3:GetBucketLocation" ], "Resource": "*" } ] }

Erlauben Sie den Zugriff auf S3-Buckets für Komponentenartefakte

Die standardmäßige Core-Geräterolle erlaubt es Core-Geräten nicht, auf S3-Buckets zuzugreifen. Um Komponenten bereitzustellen, die Artefakte in S3-Buckets enthalten, müssen Sie die s3:GetObject Berechtigung hinzufügen, Kerngeräten das Herunterladen von Komponentenartefakten zu gestatten. Sie können der Core-Geräterolle eine neue Richtlinie hinzufügen, um diese Berechtigung zu erteilen.

Um eine Richtlinie hinzuzufügen, die den Zugriff auf Komponentenartefakte in Amazon S3 ermöglicht
  1. Erstellen Sie eine Datei mit dem Namen component-artifact-policy.json und kopieren Sie Folgendes JSON in die Datei. Diese Richtlinie ermöglicht den Zugriff auf alle Dateien in einem S3-Bucket. Ersetzen Sie amzn-s3-demo-bucket durch den Namen des S3-Buckets, damit das Kerngerät darauf zugreifen kann.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
  2. Führen Sie den folgenden Befehl aus, um die Richtlinie aus dem Richtliniendokument in zu erstellen. component-artifact-policy.json

    Linux or Unix
    aws iam create-policy \ --policy-name MyGreengrassV2ComponentArtifactPolicy \ --policy-document file://component-artifact-policy.json
    Windows Command Prompt (CMD)
    aws iam create-policy ^ --policy-name MyGreengrassV2ComponentArtifactPolicy ^ --policy-document file://component-artifact-policy.json
    PowerShell
    aws iam create-policy ` --policy-name MyGreengrassV2ComponentArtifactPolicy ` --policy-document file://component-artifact-policy.json

    Kopieren Sie die Richtlinie Amazon Resource Name (ARN) aus den Richtlinienmetadaten in der Ausgabe. Sie verwenden diesARN, um diese Richtlinie im nächsten Schritt an die zentrale Geräterolle anzuhängen.

  3. Führen Sie den folgenden Befehl aus, um die Richtlinie an die zentrale Geräterolle anzuhängen. Ersetzen GreengrassV2TokenExchangeRole mit dem Namen der Rolle, die Sie bei der Ausführung der AWS IoT Greengrass Core-Software angegeben haben. Ersetzen Sie dann die Richtlinie ARN durch die Richtlinie ARN aus dem vorherigen Schritt.

    Linux or Unix
    aws iam attach-role-policy \ --role-name GreengrassV2TokenExchangeRole \ --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
    Windows Command Prompt (CMD)
    aws iam attach-role-policy ^ --role-name GreengrassV2TokenExchangeRole ^ --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
    PowerShell
    aws iam attach-role-policy ` --role-name GreengrassV2TokenExchangeRole ` --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy

    Wenn der Befehl nicht ausgegeben wurde, war er erfolgreich, und Ihr Kerngerät kann auf Artefakte zugreifen, die Sie in diesen S3-Bucket hochladen.