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 CreateJob
APIzu 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.
Richtlinienaktionen | APIBetrieb | Ressourcentypen | Beschreibung |
---|---|---|---|
iot:AssociateTargetsWithJob |
AssociateTargetsWithJob |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
Gewährt die Berechtigung zum Markieren einer bestimmten Ressource. |
iot:UntagResource |
UntagResource |
|
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, wieFirmwareUpdateGroup
z. -
thing-name
mit dem Namen Ihres IoT-Dings, für das Sie Jobs anstreben, wieMyIoTThing
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:SourceIp
globalen 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:ViaAWSService
globalen 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 DescribeJobExecution
APIvon 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, wiemyRegisteredThing
z. -
ist die eindeutige Kennung für den Job, auf den Sie mithilfe von abzielenAPI.job-id
aws iot-jobs-data describe-job-execution \ --endpoint-url "https://
account-id
.jobs.iot.region
.amazonaws.com" \ --job-idjobID
--thing-namething-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:SourceIp
globalen 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, wieMyIoTThing
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 CreateJob
oder CreateJobTemplate
mit 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, wieMyIoTThing
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/*" ] } }