Featuresweise von AWS IoT Greengrass mit IAM - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

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.

Featuresweise von AWS IoT Greengrass mit IAM

Bevor Sie IAM verwenden, um den Zugriff auf zu verwaltenAWS IoT Greengrass, sollten Sie die IAM-Funktionen kennen, die Sie mit verwenden könnenAWS IoT Greengrass.

Einen Überblick über das Zusammenwirken anderer -AWSServices mit IAM finden Sie unter -AWSServices, die mit IAM funktionieren im IAM-Benutzerhandbuch.

Identitätsbasierte Richtlinien für AWS IoT Greengrass

Mit identitätsbasierten IAM-Richtlinien können Sie festlegen, welche Aktionen und Ressourcen gewährt oder abgelehnt werden. Darüber hinaus können Sie die Bedingungen festlegen, unter denen Aktionen zugelassen oder abgelehnt werden. AWS IoT Greengrass unterstützt bestimmte Aktionen, Ressourcen und Bedingungsschlüssel. Weitere Informationen zu allen Elementen, die Sie in einer Richtlinie verwenden, finden Sie in der Referenz zu IAM-JSON-Richtlinienelementen im IAM-Benutzerhandbuch.

Aktionen

Administratoren können mit AWS-JSON-Richtlinien festlegen, welche Personen zum Zugriff auf welche Ressourcen berechtigt sind. Das heißt, welcher Prinzipal kann Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen.

Das Element Action einer JSON-Richtlinie beschreibt die Aktionen, mit denen Sie den Zugriff in einer Richtlinie zulassen oder verweigern können. Richtlinienaktionen haben normalerweise denselben Namen wie die zugehörige AWS-API-Operation. Es gibt einige Ausnahmen, z. B. Aktionen, die nur mit Genehmigung durchgeführt werden können und für die es keine passende API-Operation gibt. Es gibt auch einige Operationen, die mehrere Aktionen in einer Richtlinie erfordern. Diese zusätzlichen Aktionen werden als abhängige Aktionen bezeichnet.

Schließen Sie Aktionen in eine Richtlinie ein, um Berechtigungen zur Durchführung der zugeordneten Operation zu erteilen.

Richtlinienaktionen für AWS IoT Greengrass verwenden ein greengrass:-Präfix vor der Aktion. Um beispielsweise jemandem zu erlauben, die ListGroups -API-Operation zum Auflisten der Gruppen in seinem zu verwendenAWS-Konto, fügen Sie die Aktion greengrass:ListGroups in seine Richtlinie ein. Richtlinienanweisungen müssen ein Action- oder NotAction-Element enthalten. AWS IoT Greengrass definiert seinen eigenen Satz an Aktionen, die Aufgaben beschreiben, die Sie mit diesem Service durchführen können.

Um mehrere Aktionen in einer einzigen Anweisung anzugeben, listen Sie sie zwischen Klammern ([]) auf und trennen Sie sie durch Kommas, wie folgt:

"Action": [ "greengrass:action1", "greengrass:action2", "greengrass:action3" ]

Sie können Platzhalter (*) verwenden, um mehrere Aktionen anzugeben. Beispielsweise können Sie alle Aktionen festlegen, die mit dem Wort List beginnen, einschließlich der folgenden Aktion:

"Action": "greengrass:List*"
Anmerkung

Es wird empfohlen, die Verwendung von Platzhaltern zu vermeiden, um alle verfügbaren Aktionen für einen Service anzugeben. Als bewährte Methode sollten Sie in einer Richtlinie die geringsten Berechtigungen mit eng begrenztem Umfang gewähren. Weitere Informationen finden Sie unter Erteilen von Mindestberechtigungen.

Eine vollständige Liste der AWS IoT Greengrass Aktionen finden Sie unter Von definierte Aktionen AWS IoT Greengrass im IAM-Benutzerhandbuch.

Ressourcen

Administratoren können mit AWS-JSON-Richtlinien festlegen, welche Personen zum Zugriff auf welche Ressourcen berechtigt sind. Das bedeutet die Festlegung, welcher Prinzipal Aktionen für welche Ressourcen unter welchen Bedingungen ausführen kann.

Das JSON-Richtlinienelement Resource gibt die Objekte an, auf welche die Aktion angewendet wird. Anweisungen müssen entweder ein – Resourceoder ein NotResource-Element enthalten. Als bewährte Methode geben Sie eine Ressource mit dem zugehörigen Amazon-Ressourcennamen (ARN) an. Sie können dies für Aktionen tun, die einen bestimmten Ressourcentyp unterstützen, der als Berechtigungen auf Ressourcenebene bezeichnet wird.

Verwenden Sie für Aktionen, die keine Berechtigungen auf Ressourcenebene unterstützen, z. B. Auflistungsoperationen, einen Platzhalter (*), um anzugeben, dass die Anweisung für alle Ressourcen gilt.

"Resource": "*"

Die folgende Tabelle enthält die AWS IoT Greengrass-Ressourcen-ARNs, die im Resource-Element einer Richtlinienanweisung verwendet werden können. Eine Zuordnung der unterstützten Berechtigungen auf Ressourcenebene für -AWS IoT GreengrassAktionen finden Sie unter Von definierte Aktionen AWS IoT Greengrass im IAM-Benutzerhandbuch.

Ressource ARN
Group arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}
GroupVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/versions/${VersionId}
CertificateAuthority arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/certificateauthorities/${CertificateAuthorityId}
Deployment arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/deployments/${DeploymentId}
BulkDeployment arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/bulk/deployments/${BulkDeploymentId}
ConnectorDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}
ConnectorDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}/versions/${VersionId}
CoreDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}
CoreDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}/versions/${VersionId}
DeviceDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}
DeviceDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}/versions/${VersionId}
FunctionDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}
FunctionDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}/versions/${VersionId}
LoggerDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}
LoggerDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}/versions/${VersionId}
ResourceDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}
ResourceDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}/versions/${VersionId}
SubscriptionDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}
SubscriptionDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}/versions/${VersionId}
ConnectivityInfo arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo

Das folgende Resource Beispielelement gibt den ARN einer Gruppe in der Region USA West (Oregon) in der AWS-Konto an123456789012:

"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Um alle Gruppen anzugeben, die zu einem AWS-Konto in einer bestimmten gehörenAWS-Region, verwenden Sie alternativ den Platzhalter anstelle der Gruppen-ID:

"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/*"

Einige AWS IoT Greengrass-Aktionen (z. B. einige Listenoperationen) können für eine bestimmte Ressource nicht ausgeführt werden. In diesen Fällen müssen Sie allein den Platzhalter verwenden.

"Resource": "*"

Um mehrere Ressourcen-ARNs in einer Anweisung anzugeben, listen Sie sie zwischen Klammern ([]) auf und trennen Sie sie wie folgt durch Kommas:

"Resource": [ "resource-arn1", "resource-arn2", "resource-arn3" ]

Weitere Informationen über ARN-Formate finden Sie unter Amazon-Ressourcennamen (ARNs) und AWS-Service-Namespaces im Allgemeine Amazon Web Services-Referenz.

Bedingungsschlüssel

Administratoren können mithilfe von AWS-JSON-Richtlinien festlegen, wer zum Zugriff auf was berechtigt ist. Das heißt, welcher Prinzipal kann Aktionen für welche Ressourcen und unter welchen Bedingungen ausführen.

Das Element Condition (oder Condition block) ermöglicht Ihnen die Angabe der Bedingungen, unter denen eine Anweisung wirksam ist. Das Element Condition ist optional. Sie können bedingte Ausdrücke erstellen, die Bedingungsoperatoren verwenden, z. B. ist gleich oder kleiner als, damit die Bedingung in der Richtlinie mit Werten in der Anforderung übereinstimmt.

Wenn Sie mehrere Condition-Elemente in einer Anweisung oder mehrere Schlüssel in einem einzelnen Condition-Element angeben, wertet AWS diese mittels einer logischen AND-Operation aus. Wenn Sie mehrere Werte für einen einzelnen Bedingungsschlüssel angeben, wertet AWS die Bedingung mittels einer logischen OR-Operation aus. Alle Bedingungen müssen erfüllt werden, bevor die Berechtigungen der Anweisung gewährt werden.

Sie können auch Platzhaltervariablen verwenden, wenn Sie Bedingungen angeben. Beispielsweise können Sie einem IAM-Benutzer die Berechtigung für den Zugriff auf eine Ressource nur dann gewähren, wenn sie mit dessen IAM-Benutzernamen gekennzeichnet ist. Weitere Informationen finden Sie unter IAM-Richtlinienelemente: Variablen und Tags im IAM-Benutzerhandbuch.

AWS unterstützt globale Bedingungsschlüssel und servicespezifische Bedingungsschlüssel. Eine Liste aller globalen AWS-Bedingungsschlüssel finden Sie unter Globale AWS-Bedingungskontextschlüssel im IAM-Benutzerhandbuch.

AWS IoT Greengrass unterstützt die folgenden globalen Bedingungsschlüssel.

Schlüssel Beschreibung
aws:CurrentTime Filtert den Zugriff durch Prüfen der Datum/Uhrzeit-Bedingungen für das aktuelle Datum und die aktuelle Uhrzeit.
aws:EpochTime Filtert den Zugriff durch Prüfen der Datum/Uhrzeit-Bedingungen für das aktuelle Datum und die aktuelle Uhrzeit in Epoch- oder Unix-Zeit.
aws:MultiFactorAuthAge Filtert den Zugriff durch Prüfen, wie lange es her ist (in Sekunden), dass die MFA-validierten Sicherheitsanmeldedaten, die die Anforderung getätigt haben, mittels Multi-Factor Authentication (MFA) ausgegeben wurden.
aws:MultiFactorAuthPresent Filtert den Zugriff durch Überprüfen, ob Multi-Factor Authentication (MFA) zur Validierung der temporären Sicherheitsanmeldedaten der aktuellen Anforderung verwendet wurde.
aws:RequestTag/${TagKey} Filtert Anfragen zum Erstellen basierend auf den zulässigen Wertesätzen für jedes einzelne obligatorische Tag.
aws:ResourceTag/${TagKey} Filtert Aktionen basierend auf dem Tag-Wert, der der Ressource zugeordnet ist.
aws:SecureTransport Filtert den Zugriff durch Überprüfen, ob die Anforderung mithilfe von SSL gesendet wurde.
aws:TagKeys Filtert Anfragen zum Erstellen basierend auf dem Vorhandensein obligatorischer Tags in der Anfrage.
aws:UserAgent Filtert den Zugriff nach der Client-Anwendung des Anforderers.

Weitere Informationen finden Sie unter Globale AWS-Bedingungskontextschlüssel im IAM-Benutzerhandbuch.

Beispiele

Beispiele für identitätsbasierte AWS IoT Greengrass-Richtlinien finden Sie unter Beispiele für identitätsbasierte Richtlinien für AWS IoT Greengrass.

Ressourcenbasierte Richtlinien für AWS IoT Greengrass

AWS IoT Greengrass unterstützt keine ressourcenbasierten Richtlinien.

Zugriffssteuerungslisten (ACLs)

AWS IoT Greengrass unterstützt keine ACLs.

Autorisierung auf der Basis von AWS IoT Greengrass-Tags

Sie können Tags an unterstützte AWS IoT Greengrass-Ressourcen anfügen oder Tags in einer Anforderung an AWS IoT Greengrass übergeben. Um den Zugriff basierend auf Tags zu steuern, stellen Sie Tag-Informationen im Bedingungselement einer Richtlinie unter Verwendung der Bedingungsschlüssel aws:ResourceTag/${TagKey}, aws:RequestTag/${TagKey} oder aws:TagKeys bereit. Weitere Informationen finden Sie unter Markieren Ihrer AWS IoT Greengrass-Ressourcen.

IAM-Rollen für AWS IoT Greengrass

Eine IAM-Rolle ist eine Entität in Ihrem AWS-Konto mit spezifischen Berechtigungen.

Verwenden temporärer Anmeldeinformationen mit AWS IoT Greengrass

Temporäre Anmeldeinformationen werden verwendet, um sich mit einem Verbund anzumelden, eine IAM-Rolle anzunehmen oder eine kontoübergreifende Rolle anzunehmen. Sie erhalten temporäre Sicherheitsanmeldeinformationen, indem Sie AWS STS -API-Operationen wie AssumeRole oder aufrufenGetFederationToken.

Auf dem Greengrass-Kern werden temporäre Anmeldeinformationen für die Gruppenrolle benutzerdefinierten Lambda-Funktionen und Konnektoren zur Verfügung gestellt. Wenn Ihre Lambda-Funktionen das AWS SDK verwenden, müssen Sie keine Logik hinzufügen, um die Anmeldeinformationen zu erhalten, da das AWS SDK dies für Sie übernimmt.

Service-verknüpfte Rollen

AWS IoT Greengrass unterstützt keine serviceverknüpften Rollen.

Servicerollen

Dieses Feature ermöglicht einem Service das Annehmen einer Servicerolle in Ihrem Namen. Diese Rolle gewährt dem Service Zugriff auf Ressourcen in anderen Diensten, um eine Aktion in Ihrem Namen auszuführen. Servicerollen werden in Ihrem IAM-Konto angezeigt und gehören zum Konto. Dies bedeutet, dass ein IAM-Administrator die Berechtigungen für diese Rolle ändern kann. Dies kann jedoch die Funktionalität des Dienstes beeinträchtigen.

AWS IoT Greengrass verwendet eine Servicerolle, um auf einige Ihrer AWS-Ressourcen in Ihrem Namen zuzugreifen. Weitere Informationen finden Sie unter Greengrass-Servicerolle.

Auswählen einer IAM-Rolle in der AWS IoT Greengrass Konsole

In der AWS IoT GreengrassKonsole müssen Sie möglicherweise eine Greengrass-Servicerolle oder eine Greengrass-Gruppenrolle aus einer Liste von IAM-Rollen in Ihrem Konto auswählen.

  • Die Greengrass-Servicerolle ermöglicht AWS IoT Greengrass den Zugriff auf Ihre AWS-Ressourcen in anderen Services in Ihrem Namen. In der Regel müssen Sie die Servicerolle nicht auswählen, da die Konsole sie für Sie erstellen und konfigurieren kann. Weitere Informationen finden Sie unter Greengrass-Servicerolle.

  • Die Greengrass-Gruppenrolle wird verwendet, um Greengrass-Lambda-Funktionen und Konnektoren in der Gruppe den Zugriff auf Ihre -AWSRessourcen zu ermöglichen. Es kann auch AWS IoT Greengrass Berechtigungen zum Exportieren von Streams in -AWSServices und zum Schreiben von CloudWatch Protokollen erteilen. Weitere Informationen finden Sie unter Greengrass-Gruppenrolle..