Autorisieren von Benutzern und Cloud-Services zur Nutzung von AWS IoT -Aufträgen - AWS IoT Core

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 von Benutzern und Cloud-Services zur Nutzung von AWS IoT -Aufträgen

Um Ihre Benutzer und Cloud-Services zu autorisieren, müssen Sie IAM-Richtlinien sowohl auf der Steuerebene als auch auf der Datenebene verwenden. Die Richtlinien müssen mit dem HTTPS-Protokoll verwendet werden und müssen die AWS Signature Version 4-Authentifizierung (Port 443) verwenden, um Benutzer zu authentifizieren.

Anmerkung

AWS IoT Core Richtlinien dürfen nicht auf der Steuerungsebene verwendet werden. Für die Autorisierung von Benutzern oder Cloud-Services werden nur IAM-Richtlinien verwendet. Weitere Informationen über die Verwendung der erforderlichen Richtlinie finden Sie unter Erforderlicher Richtlinientyp für Jobs AWS IoT.

IAM-Richtlinien sind JSON-Dokumente, die Richtlinienanweisungen enthalten. Richtlinienanweisungen verwenden die Elemente Effekt, Aktion und Ressource, um Ressourcen festzulegen, Aktionen zuzulassen oder abzulehnen und Bedingungen, bei denen Aktionen zugelassen oder abgelehnt werden. Weitere Informationen finden Sie in der Referenz zu IAM-JSON-Richtlinienelementen im IAM-Benutzerhandbuch.

Warnung

Wir empfehlen, dass Sie keine Platzhalterberechtigungen verwenden, z. B. "Action": ["iot:*"] in Ihren IAM-Richtlinien oder AWS IoT Core Richtlinien. Die Verwendung von Platzhalterberechtigungen ist keine empfohlene, bewährte Sicherheitsmethode. Weitere Informationen finden Sie unter Zu AWS IoT freizügige Richtlinie.

IAM-Richtlinien auf der Steuerebene

Auf der Steuerebene verwenden IAM-Richtlinien das Präfix iot: mit der Aktion, um den entsprechenden API-Vorgang für Aufträge zu autorisieren. Beispielsweise gewährt die Richtlinienaktion iot:CreateJob dem Benutzer die Erlaubnis, die CreateJob-API zu verwenden.

In der folgenden Tabelle wird eine Liste der IAM-Richtlinienaktionen und Berechtigungen für die Verwendung der API-Aktionen dargestellt. Informationen zu Ressourcentypen finden Sie unter Ressourcentypen, definiert von. AWS IoT Weitere Informationen zu AWS IoT Aktionen finden Sie unter Aktionen definiert von AWS IoT.

IAM-Richtlinienaktionen auf Steuerebene
Richtlinienaktionen API-Operation Ressourcentypen Beschreibung
iot:AssociateTargetsWithJob AssociateTargetsWithJob
  • Auftrag

  • Objekt

  • thinggroup

Steht für die Erlaubnis zum Verknüpfen einer Gruppe mit einem kontinuierlichen Auftrag. Die Berechtigung iot:AssociateTargetsWithJob wird jedes Mal überprüft, wenn eine Anforderung zur Verknüpfung eines Auftrags gestellt wird.
iot:CancelJob CancelJob Auftrag Stellt die Berechtigung zum Abbrechen eines Auftrags dar. Die Berechtigung iot:CancelJob wird jedes Mal überprüft, wenn eine Anforderung zum Abbrechen eines Auftrags gestellt wird.
iot:CancelJobExecution CancelJobExecution
  • Auftrag

  • Objekt

Stellt die Berechtigung zum Abbruch einer Auftragsausführung dar. Die Berechtigung iot: CancelJobExecution wird jedes Mal überprüft, wenn eine Anforderung zum Abbrechen einer Auftragsausführung gestellt wird.
iot:CreateJob CreateJob
  • Auftrag

  • Objekt

  • thinggroup

  • jobtemplate

  • package

Stellt die Berechtigung zum Erstellen eines Auftrags dar. Die Berechtigung iot: CreateJob wird jedes Mal überprüft, wenn eine Anforderung zum Erstellen eines Auftrags gestellt wird.
iot:CreateJobTemplate CreateJobTemplate
  • Auftrag

  • jobtemplate

  • package

Stellt die Berechtigung zum Erstellen einer Auftragsvorlage dar. Die Berechtigung iot: CreateJobTemplate wird jedes Mal überprüft, wenn eine Anforderung zum Erstellen einer Auftragsvorlage gestellt wird.
iot:DeleteJob DeleteJob Auftrag Stellt die Berechtigung zum Löschen eines Auftrags dar. Die Berechtigung iot: DeleteJob wird jedes Mal überprüft, wenn eine Anforderung zum Löschen eines Auftrags gestellt wird.
iot:DeleteJobTemplate DeleteJobTemplate jobtemplate Stellt die Berechtigung zum Löschen einer Auftragsvorlage dar. Die Berechtigung iot: CreateJobTemplate wird jedes Mal überprüft, wenn eine Anforderung zum Löschen einer Auftragsvorlage gestellt wird.
iot:DeleteJobExecution DeleteJobTemplate
  • Auftrag

  • Objekt

Stellt die Berechtigung zum Löschen einer Auftragsausführung dar. Die Berechtigung iot: DeleteJobExecution wird jedes Mal überprüft, wenn eine Anforderung zum Löschen eines Auftragsausführung gestellt wird.
iot:DescribeJob DescribeJob Auftrag Stellt die Berechtigung zum Beschreiben eines Auftrags dar. Die Berechtigung iot: DescribeJob wird jedes Mal überprüft, wenn eine Anforderung zum Beschreiben eines Auftrags gestellt wird.
iot:DescribeJobExecution DescribeJobExecution
  • Auftrag

  • Objekt

Stellt die Berechtigung zum Beschreiben einer Auftragsausführung dar. Die Berechtigung iot: DescribeJobExecution wird jedes Mal überprüft, wenn eine Anforderung zum Beschreiben einer Auftragsausführung gestellt wird.
iot:DescribeJobTemplate DescribeJobTemplate jobtemplate Stellt die Berechtigung zum Beschreiben einer Auftragsvorlage dar. Die Berechtigung iot: DescribeJobTemplate wird jedes Mal überprüft, wenn eine Anforderung zum Beschreiben einer Auftragsvorlage gestellt wird.
iot:DescribeManagedJobTemplate DescribeManagedJobTemplate jobtemplate Stellt die Berechtigung zum Beschreiben einer verwalteten Auftragsvorlage dar. Die Berechtigung iot: DescribeManagedJobTemplate wird jedes Mal überprüft, wenn eine Anfrage zur Beschreibung einer verwalteten Auftragsvorlage gestellt wird.
iot:GetJobDocument GetJobDocument Auftrag Stellt die Berechtigung zum Abrufen eines Auftragsdokuments für einen Auftrag dar. Die Berechtigung iot:GetJobDocument wird jedes Mal überprüft, wenn eine Anforderung zum Abrufen eines Auftragsdokuments gestellt wird.
iot:ListJobExecutionsForJob ListJobExecutionsForJob Auftrag Stellt die Berechtigung zum Auflisten von Auftragsausführungen für einen Auftrag dar. Die Berechtigung iot:ListJobExecutionsForJob wird jedes Mal überprüft, wenn eine Anforderung zum Auflisten der Auftragsausführungen für einen Auftrag gestellt wird.
iot:ListJobExecutionsForThing ListJobExecutionsForThing Objekt Stellt die Berechtigung zum Auflisten von Auftragsausführungen für einen Auftrag dar. Die Berechtigung iot:ListJobExecutionsForThing wird jedes Mal überprüft, wenn eine Anforderung zum Auflisten der Auftragsausführungen für ein Objekt gestellt wird.
iot:ListJobs ListJobs Keine Stellt die Berechtigung zum Auflisten der Aufträge dar. Die Berechtigung iot:ListJobs wird jedes Mal überprüft, wenn eine Anforderung zum Auflisten der Aufträge gestellt wird.
iot:ListJobTemplates ListJobTemplates Keine Stellt die Berechtigung zum Auflisten der Auftragsvorlagen dar. Die Berechtigung iot:ListJobTemplates wird jedes Mal überprüft, wenn eine Anforderung zum Auflisten der Auftragsvorlagen gestellt wird.
iot:ListManagedJobTemplates ListManagedJobTemplates Keine Stellt die Berechtigung zum Auflisten der verwalteten Jobvorlagen dar. Die Berechtigung iot:ListManagedJobTemplates wird jedes Mal überprüft, wenn eine Anforderung zum Auflisten der verwalteten Auftragsvorlagen gestellt wird.
iot:UpdateJob UpdateJob Auftrag Stellt die Berechtigung zum Aktualisieren eines Auftrags dar. Die Berechtigung iot:UpdateJob wird jedes Mal überprüft, wenn eine Anforderung zum Aktualisieren des Auftrags gestellt wird.
iot:TagResource TagResource
  • Auftrag

  • jobtemplate

  • Objekt

Gewährt die Berechtigung zum Markieren einer bestimmten Ressource.
iot:UntagResource UntagResource
  • Auftrag

  • jobtemplate

  • Objekt

Gewährt die Berechtigung zum Aufheben der Markierung einer bestimmten Ressource.

Das folgende Beispiel zeigt eine IAM-Richtlinie, die dem Benutzer die Berechtigung erteilt, die folgenden Aktionen für Ihr IoT-Objekt und Ihre Objektgruppe auszuführen.

Ersetzen Sie im Beispiel:

  • regionmit Ihrem AWS-Region, wie zum Beispielus-east-1.

  • account-idmit deiner AWS-Konto Nummer, wie57EXAMPLE833.

  • thing-group-namemit dem Namen Ihrer IoT-Dinggruppe, für die Sie Jobs anstreben, wie FirmwareUpdateGroup z.

  • thing-namemit dem Namen Ihres IoT-Dings, für das Sie Jobs anstreben, wie MyIoTThing z.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iot:CreateJobTemplate", "iot:CreateJob", ], "Effect": "Allow", "Resource": "arn:aws:iot:region:account-id:thinggroup/thing-group-name" }, { "Action": [ "iot:DescribeJob", "iot:CancelJob", "iot:DeleteJob", ], "Effect": "Allow", "Resource": "arn:aws:iot:region:account-id:job/*" }, { "Action": [ "iot:DescribeJobExecution", "iot:CancelJobExecution", "iot:DeleteJobExecution", ], "Effect": "Allow", "Resource": [ "arn:aws:iot:region:account-id:thing/thing-name" "arn:aws:iot:region:account-id:job/*" ] } ] }

Sie können Prinzipale daran hindern, von bestimmten IP-Adressen aus API-Aufrufe an den Endpunkt Ihrer Steuerebene zu tätigen. Um die IP-Adressen anzugeben, die zugelassen werden können, verwenden Sie im Condition-Element Ihrer IAM-Richtlinie den globalen Bedingungsschlüssel aws:SourceIp.

Die Verwendung dieses Bedingungsschlüssels kann auch dazu führen, dass andere AWS-Service Benutzer diese API-Aufrufe in Ihrem Namen nicht ausführen können, z. AWS CloudFormation B. Um den Zugriff auf diese Dienste zu ermöglichen, verwenden Sie den aws:ViaAWSServiceglobalen Bedingungsschlüssel mit dem SourceIp Schlüssel aws:. Dadurch wird sichergestellt, dass die Zugriffsbeschränkung für die Quell-IP-Adresse nur für Anforderungen gilt, die direkt von einem Prinzipal stammen. Weitere Informationen finden Sie unter AWS: Verweigert den Zugriff auf AWS basierend auf der Quell-IP.

Das folgende Beispiel zeigt, wie nur eine bestimmte IP-Adresse zugelassen wird, die API-Aufrufe an den Endpunkt der Steuerebene tätigen kann. Der Schlüssel aws:ViaAWSService ist auf true eingestellt, sodass andere Services API-Aufrufe in Ihrem Namen tätigen können.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:CreateJobTemplate", "iot:CreateJob" ], "Resource": ["*"], "Condition": { "IpAddress": { "aws:SourceIp": "123.45.167.89" } }, "Bool": {"aws:ViaAWSService": "true"} } ], }

IAM-Richtlinien auf der Datenebene

IAM-Richtlinien auf der Datenebene verwenden das Präfix iotjobsdata: zum Autorisieren von API-Vorgängen, die Benutzer ausführen können. Auf der Datenebene können Sie einem Benutzer die Berechtigung zur Verwendung der DescribeJobExecution-API mithilfe der Richtlinienaktion iotjobsdata:DescribeJobExecution erteilen.

Warnung

Die Verwendung von IAM-Richtlinien auf der Datenebene wird nicht empfohlen, wenn Sie AWS IoT -Jobs für Ihre Geräte vergeben möchten. Wir empfehlen, dass Sie IAM-Richtlinien auf der Steuerebene verwenden, damit Benutzer Aufträge erstellen und verwalten können. Verwenden Sie auf der Datenebene AWS IoT Core Richtlinien für das HTTPS-Protokoll, um Geräte zum Abrufen von Auftragsausführungen und zum Aktualisieren des Ausführungsstatus zu autorisieren.

Die API-Operationen, die autorisiert werden müssen, werden normalerweise ausgeführt, indem Sie CLI-Befehle eingeben. Nachfolgend wird ein Beispiel für einen Benutzer gezeigt, der eine Operation DescribeJobExecution ausführt.

Ersetzen Sie im Beispiel:

  • regionmit Ihrem AWS-Region, wie us-east-1 zum Beispiel.

  • account-idmit deiner AWS-Konto Nummer, wie57EXAMPLE833.

  • thing-namemit dem Namen Ihres IoT-Dings, für das Sie Jobs anstreben, wie myRegisteredThing z.

  • job-id ist die eindeutige Kennung für den zu vergebenden Auftrag, für den die API verwendet wird.

aws iot-jobs-data describe-job-execution \ --endpoint-url "https://account-id.jobs.iot.region.amazonaws.com" \ --job-id jobID --thing-name thing-name

Nachfolgend wird das Beispiel einer IAM-Richtlinie angezeigt, mit der diese Aktion autorisiert wird:

JSON
{ "Version": "2012-10-17", "Statement": { "Action": ["iotjobsdata:DescribeJobExecution"], "Effect": "Allow", "Resource": "arn:aws:iot:region:account-id:thing/thing-name", } }

Sie können den Zugriff der Prinzipale einschränken, von bestimmten IP-Adressen aus API-Aufrufe an den Endpunkt Ihrer Datenebene zu vergeben. Um die IP-Adressen anzugeben, die zugelassen werden können, verwenden Sie im Condition-Element Ihrer IAM-Richtlinie den globalen Bedingungsschlüssel aws:SourceIp.

Die Verwendung dieses Bedingungsschlüssels kann auch dazu führen, dass andere AWS-Service Benutzer diese API-Aufrufe in Ihrem Namen nicht ausführen können, z. AWS CloudFormation B. Um den Zugriff auf diese Services zu ermöglichen, verwenden Sie den globalen Bedingungsschlüssel aws:ViaAWSService zusammen mit dem Bedingungsschlüssel aws:SourceIp. Dadurch wird sichergestellt, dass die Zugriffsbeschränkung für IP-Adressen nur für Anfragen gilt, die direkt vom Prinzipal gestellt werden. Weitere Informationen finden Sie unter AWS: Verweigert den Zugriff auf AWS basierend auf der Quell-IP.

Das folgende Beispiel zeigt, wie nur eine bestimmte IP-Adresse zugelassen wird, die API-Aufrufe an den Endpunkt der Datenebene vergeben kann.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iotjobsdata:*"], "Resource": ["*"], "Condition": { "IpAddress": { "aws:SourceIp": "123.45.167.89" } }, "Bool": {"aws:ViaAWSService": "false"} } ], }

Das folgende Beispiel zeigt, wie Sie für bestimmte IP-Adressen oder Adressbereiche das Vergeben von API-Aufrufen an den Endpunkt der Datenebene einschränken können.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": ["iotjobsdata:*"], "Condition": { "IpAddress": { "aws:SourceIp": [ "123.45.167.89", "192.0.2.0/24", "203.0.113.0/24" ] } }, "Resource": ["*"], } ], }

Wenn Sie eine API-Operation sowohl auf der Steuerebene als auch auf der Datenebene ausführen, muss Ihre Richtlinienaktion auf der Steuerebene das Präfix iot: verwenden, und Ihre Richtlinienaktion auf der Datenebene muss das Präfix iotjobsdata: verwenden.

Beispielsweise kann die API DescribeJobExecution sowohl auf der Steuerebene als auch auf der Datenebene verwendet werden. Auf der Steuerungsebene wird die DescribeJobExecutionAPI verwendet, um die Ausführung eines Jobs zu beschreiben. Auf der Datenebene wird die DescribeJobExecutionAPI verwendet, um Details einer Jobausführung abzurufen.

Die folgende IAM-Richtlinie autorisiert einen Benutzer, die API DescribeJobExecution sowohl auf der Steuerebene als auch auf der Datenebene zu verwenden.

Ersetzen Sie im Beispiel:

  • regionmit deinem AWS-Region, wie zum Beispielus-east-1.

  • account-idmit deiner AWS-Konto Nummer, wie57EXAMPLE833.

  • thing-namemit dem Namen Ihres IoT-Dings, für das Sie Jobs anstreben, wie MyIoTThing z.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Action": ["iotjobsdata:DescribeJobExecution"], "Effect": "Allow", "Resource": "arn:aws:iot:region:account-id:thing/thing-name" }, { "Action": [ "iot:DescribeJobExecution", "iot:CancelJobExecution", "iot:DeleteJobExecution", ], "Effect": "Allow", "Resource": [ "arn:aws:iot:region:account-id:thing/thing-name" "arn:aws:iot:region:account-id:job/*" ] } ] }

Das Markieren von IoT-Ressourcen autorisieren

Um eine bessere Kontrolle über Aufträge und Auftragsvorlagen zu erhalten, die Sie erstellen, ändern oder verwenden können, haben Sie die Möglichkeit, Markierungen an die Aufträge oder Auftragsvorlagen anzuhängen. Markierungen helfen Ihnen außerdem bei der Unterscheidung von Eigentumsrechten, der Zuweisung und Zuordnung von Kosten, indem Sie diese Abrechnungsgruppen zuordnen und mit Markierungen versehen.

Wenn ein Benutzer seine Jobs oder Jobvorlagen, die er mit oder dem erstellt hat, taggen möchte AWS CLI, muss Ihre IAM-Richtlinie dem Benutzer Berechtigungen zum Markieren dieser Jobs AWS Management Console oder Jobvorlagen gewähren. Zum Erteilen von Berechtigungen muss Ihre IAM-Richtlinie die Aktion iot:TagResource verwenden.

Anmerkung

Wenn Ihre IAM-Richtlinie die Aktion iot:TagResource nicht beinhaltet, wird jede Aktion CreateJob oder CreateJobTemplate mit einer Markierung einen Fehler AccessDeniedException zurückgeben.

Wenn Sie Ihre Jobs oder Jobvorlagen, die Sie mithilfe von oder erstellt haben, taggen möchten AWS CLI, muss Ihre IAM-Richtlinie die Erlaubnis gewähren, sie zu taggen. AWS Management Console Zum Erteilen von Berechtigungen muss Ihre IAM-Richtlinie die Aktion iot:TagResource verwenden.

Allgemeine Informationen zum Tagging von Ressourcen finden Sie unter Verschlagworten Sie Ihre Ressourcen AWS IoT.

Sehen Sie sich die folgenden Beispiele für IAM-Richtlinien zur Gewährung von Berechtigungen zum Markieren an:

Beispiel 1

Ein Benutzer, der den folgenden Befehl ausführt, um einen Auftrag zu erstellen und ihn einer bestimmten Umgebung zuzuordnen.

Ersetzen Sie in diesem Beispiel:

  • regionmit Ihrem AWS-Region, wie us-east-1 zum Beispiel.

  • account-idmit deiner AWS-Konto Nummer, wie57EXAMPLE833.

  • thing-namemit dem Namen Ihres IoT-Dings, für das Sie Jobs anstreben, wie MyIoTThing z.

aws iot create-job --job-id test_job --targets "arn:aws:iot:region:account-id:thing/thingOne" --document-source "https://s3.amazonaws.com/amzn-s3-demo-bucket/job-document.json" --description "test job description" --tags Key=environment,Value=beta

In diesem Beispiel müssen Sie die folgende IAM-Richtlinie verwenden:

JSON
{ "Version": "2012-10-17", "Statement": { "Action": [ "iot:CreateJob", "iot:CreateJobTemplate", "iot:TagResource" ], "Effect": "Allow", "Resource": [ "arn:aws:iot:aws-region:account-id:job/*", "arn:aws:iot:aws-region:account-id:jobtemplate/*" ] } }