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-Dienste zu autorisieren, müssen Sie IAM Richtlinien sowohl auf der Steuerungsebene 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-Diensten werden nur IAM Richtlinien verwendet. Weitere Informationen über die Verwendung der erforderlichen Richtlinie finden Sie unter Erforderlicher Richtlinientyp für Jobs AWS IoT.

IAMRichtlinien sind JSON Dokumente, die Richtlinienerklärungen 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 unter IAMJSONPolicy Elements Reference im IAMBenutzerhandbuch.

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.

IAMRichtlinien auf der Kontrollebene

Auf der Steuerungsebene verwenden IAM Richtlinien das iot: Präfix mit der Aktion, um den entsprechenden API Auftragsvorgang zu autorisieren. Die iot:CreateJob Richtlinienaktion gewährt dem Benutzer beispielsweise die Erlaubnis, den CreateJobAPIzu verwenden.

Die folgende Tabelle enthält eine Liste der IAM Richtlinienaktionen und der Berechtigungen zur Verwendung der API Aktionen. 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.

IAMpolitische Aktionen auf der Kontrollebene
Richtlinienaktionen APIBetrieb 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 Erlaubnis gibt, die folgenden Aktionen für Ihr IoT-Ding und Ihre IoT-Dinggruppe auszuführen.

Ersetzen Sie im Beispiel:

  • region mit Ihrem AWS-Region, wieus-east-1.

  • account-id mit deiner AWS-Konto Nummer, wie57EXAMPLE833.

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

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

{ "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 verhindern, dass Principals von bestimmten IP-Adressen aus API Anrufe an Ihren Kontrollebenen-Endpunkt tätigen. Um die IP-Adressen anzugeben, die zugelassen werden können, verwenden Sie im Element Bedingung Ihrer IAM Richtlinie den aws:SourceIpglobalen Bedingungsschlüssel.

Die Verwendung dieses Bedingungsschlüssels kann auch dazu führen, dass andere AWS-Service Benutzer diese API Anrufe nicht in Ihrem Namen tätigen 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 Anrufe an den Endpunkt der Steuerungsebene tätigen kann. Der aws:ViaAWSService Schlüssel ist auf eingestellttrue, sodass andere Dienste in Ihrem Namen API Anrufe tätigen können.

{ "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"} } ], }

IAMRichtlinien auf der Datenebene

IAMRichtlinien auf der Datenebene verwenden das iotjobsdata: Präfix, um API Jobvorgänge zu autorisieren, die Benutzer ausführen können. Auf der Datenebene können Sie einem Benutzer mithilfe der iotjobsdata:DescribeJobExecution Richtlinienaktion die Berechtigung zur Verwendung DescribeJobExecutionAPIvon erteilen.

Warnung

Die Verwendung von IAM Richtlinien auf der Datenebene wird nicht empfohlen, wenn Sie AWS IoT Jobs auf Ihre Geräte ausrichten möchten. Wir empfehlen, dass Sie IAM Richtlinien auf der Steuerungsebene verwenden, damit Benutzer Jobs erstellen und verwalten können. Verwenden Sie auf der Datenebene AWS IoT Core Richtlinien für HTTPS das 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:

  • region mit deinem AWS-Region, wieus-east-1.

  • account-id mit deiner AWS-Konto Nummer, wie57EXAMPLE833.

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

  • job-idist die eindeutige Kennung für den Job, auf den Sie mithilfe von abzielenAPI.

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

Im Folgenden wird ein Beispiel IAM für eine Richtlinie gezeigt, die diese Aktion autorisiert:

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

Sie können verhindern, dass Prinzipale von bestimmten IP-Adressen aus API Anrufe an Ihren Datenebenen-Endpunkt tätigen. Um die IP-Adressen anzugeben, die zugelassen werden können, verwenden Sie im Element Condition Ihrer IAM Richtlinie den aws:SourceIpglobalen Bedingungsschlüssel.

Die Verwendung dieses Bedingungsschlüssels kann auch dazu führen, dass andere AWS-Service Benutzer diese API Anrufe nicht in Ihrem Namen tätigen 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 Anrufe an den Endpunkt der Datenebene tätigen kann.

{ "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 verhindern können, dass bestimmte IP-Adressen oder Adressbereiche API Anrufe an den Endpunkt der Datenebene tätigen.

{ "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 einen API Vorgang sowohl auf der Steuerungsebene als auch auf der Datenebene ausführen, muss Ihre Richtlinienaktion auf der Kontrollebene das iot: Präfix verwenden, und Ihre Richtlinienaktion auf der Datenebene muss das iotjobsdata: Präfix verwenden.

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

Mit der folgenden IAM Richtlinie wird einem Benutzer die Erlaubnis erteilt, den sowohl DescribeJobExecution API auf der Steuerungsebene als auch auf der Datenebene zu verwenden.

Ersetzen Sie im Beispiel:

  • region mit deinem AWS-Region, wieus-east-1.

  • account-id mit deiner AWS-Konto Nummer, wie57EXAMPLE833.

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

{ "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 mithilfe von oder dem erstellt hat, taggen AWS Management Console möchte AWS CLI, muss Ihre IAM Richtlinie dem Benutzer die Erlaubnis gewähren, sie zu taggen. Um Berechtigungen zu gewähren, muss Ihre IAM Richtlinie die iot:TagResource Aktion verwenden.

Anmerkung

Wenn Ihre IAM Richtlinie die iot:TagResource Aktion nicht beinhaltet, wird bei jeder Aktion CreateJoboder CreateJobTemplatemit einem Tag ein AccessDeniedException Fehler zurückgegeben.

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

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

Sehen Sie sich die folgenden IAM Richtlinienbeispiele zur Gewährung von Tagging-Berechtigungen 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:

  • region mit Ihrem AWS-Region, wieus-east-1.

  • account-id mit deiner AWS-Konto Nummer, wie57EXAMPLE833.

  • thing-name mit 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

Für dieses Beispiel müssen Sie die folgende IAM Richtlinie verwenden:

{ "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/*" ] } }