Integration AWS Health mit anderen Systemen mithilfe der AWS Health API - AWS Health

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.

Integration AWS Health mit anderen Systemen mithilfe der AWS Health API

AWS Health ist ein RESTful Webdienst, der HTTPS als Transport- und JSON Nachrichtenserialisierungsformat verwendet wird. Ihr Anwendungscode kann Anfragen direkt an die AWS Health API richten. Wenn Sie den REST API direkt verwenden, müssen Sie den erforderlichen Code schreiben, um Ihre Anfragen zu signieren und zu authentifizieren. Weitere Informationen zu den AWS Health Operationen und Parametern finden Sie in der AWS Health APIReferenz.

Anmerkung

Sie müssen über einen Business-, Enterprise On-Ramp- oder Enterprise Support-Plan von verfügen, um den AWS Health API nutzen AWS Supportzu können. Wenn Sie den AWS Health API von einem AWS Konto aus anrufen, für das es keinen Business-, Enterprise On-Ramp- oder Enterprise Support-Plan gibt, erhalten Sie eine SubscriptionRequiredException Fehlermeldung.

Sie können den verwenden AWS SDKs, um die AWS Health REST API Anrufe zu beenden, was Ihre Anwendungsentwicklung vereinfachen kann. Sie geben Ihre AWS Anmeldeinformationen an, und diese Bibliotheken kümmern sich für Sie um die Authentifizierung und das Signieren von Anfragen.

AWS Health bietet auch ein AWS Health Dashboard AWS Management Console , mit dem Sie Ereignisse und betroffene Entitäten anzeigen und danach suchen können. Siehe Erste Schritte mit deinem AWS Health Dashboard.

Endpunkte für AWS Health API Anfragen auswählen

Sie AWS Health API folgt einer Anwendungsarchitektur mit mehreren Regionen und verfügt über zwei regionale Endpunkte in einer Konfiguration. Bietet einen einzigen, globalen Endpunkt zur Unterstützung von aktivem und passivem DNS Failover. AWS Health Sie können eine DNS Suche auf dem globalen Endpunkt durchführen, um den aktiven Endpunkt und die entsprechende Signaturregion zu ermitteln. AWS Auf diese Weise wissen Sie, welchen Endpunkt Sie in Ihrem Code verwenden müssen, sodass Sie die neuesten Informationen abrufen können AWS Health.

Wenn Sie eine Anfrage an den globalen Endpunkt stellen, müssen Sie Ihre AWS Zugangsdaten für den regionalen Endpunkt angeben, auf den Sie abzielen, und die Signatur für Ihre Region konfigurieren. Andernfalls schlägt Ihre Authentifizierung möglicherweise fehl. Weitere Informationen finden Sie unter Anfragen signieren AWS Health API.

Die folgende Tabelle stellt die Standardkonfiguration dar.

Beschreibung Region für die Signierung Endpunkt Protokoll
Aktiv

us-east-1

health.us-east-1.amazonaws.com

HTTPS
Passiv

us-east-2

health.us-east-2.amazonaws.com

HTTPS
Global

us-east-1

Anmerkung

Dies ist die Signaturregion des aktuellen aktiven Endpunkts.

global.health.amazonaws.com

HTTPS

Um festzustellen, ob ein Endpunkt der aktive Endpunkt ist, DNS suchen Sie auf dem globalen Endpunkt nach und extrahieren Sie dann die Region aus dem CNAME aufgelösten Namen. AWS

Beispiel : DNS Suche auf dem globalen Endpunkt

Der Befehl gibt dann den Endpunkt us-east-1 cn-northwest-1 zurück. In dieser Ausgabe erfahren Sie, für welchen Endpunkt Sie ihn verwenden sollten. AWS Health

dig global.health.amazonaws.com | grep CNAME global.health.amazonaws.com. 10 IN CNAME health.us-east-1.amazonaws.com
Tipp

Sowohl der aktive als auch der passive Endpunkt geben AWS Health Daten zurück. Die neuesten AWS Health Daten sind jedoch nur vom aktiven Endpunkt aus verfügbar. Die Daten vom passiven Endpunkt werden irgendwann mit denen des aktiven Endpunkts übereinstimmen. Wir empfehlen, dass Sie alle Workflows neu starten, wenn sich der aktive Endpunkt ändert.

Testen Sie AWS Health Endpunkt-Demos

AWS Health Verwendet in den folgenden Codebeispielen eine DNS Suche anhand des globalen Endpunkts, um den aktiven regionalen Endpunkt und die signierende Region zu ermitteln. Anschließend startet der Code den Workflow neu, wenn sich der aktive Endpunkt ändert.

Probieren Sie die Java-Demo aus

Voraussetzung

Sie müssen Gradle installieren.

Um das Java-Beispiel zu verwenden
  1. Laden Sie die Demo für AWS Health Hochverfügbarkeitsendpunkte von herunter GitHub.

  2. Navigieren Sie zum high-availability-endpoint/java Demo-Projektverzeichnis.

  3. Geben Sie in einem Befehlszeilenfenster den folgenden Befehl ein.

    gradle build
  4. Geben Sie die folgenden Befehle ein, um Ihre AWS Anmeldeinformationen anzugeben.

    export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" export AWS_SESSION_TOKEN="your-aws-token"
  5. Geben Sie den folgenden Befehl ein, um die Demo auszuführen.

    gradle run
    Beispiel : Ausgabe des AWS Health Ereignisses

    Das Codebeispiel gibt das letzte AWS Health Ereignis der letzten sieben Tage in Ihrem AWS Konto zurück. Im folgenden Beispiel enthält die Ausgabe ein AWS Health Ereignis für den AWS Config Dienst.

    > Task :run [main] INFO aws.health.high.availability.endpoint.demo.HighAvailabilityV2Workflow - EventDetails(Event=Event(Arn=arn:aws:health:global::event/CONFIG/AWS_CONFIG_OPERATIONAL_NOTIFICATION/AWS_CONFIG_OPERATIONAL_NOTIFICATION_88a43e8a-e419-4ca7-9baa-56bcde4dba3, Service=CONFIG, EventTypeCode=AWS_CONFIG_OPERATIONAL_NOTIFICATION, EventTypeCategory=accountNotification, Region=global, StartTime=2020-09-11T02:55:49.899Z, LastUpdatedTime=2020-09-11T03:46:31.764Z, StatusCode=open, EventScopeCode=ACCOUNT_SPECIFIC), EventDescription=EventDescription(LatestDescription=As part of our ongoing efforts to optimize costs associated with recording changes related to certain ephemeral workloads, AWS Config is scheduled to release an update to relationships modeled within ConfigurationItems (CI) for 7 EC2 resource types on August 1, 2021. Examples of ephemeral workloads include changes to Amazon Elastic Compute Cloud (Amazon EC2) Spot Instances, Amazon Elastic MapReduce jobs, and Amazon EC2 Autoscaling. This update will optimize CI models for EC2 Instance, SecurityGroup, Network Interface, Subnet, VPC, VPN Gateway, and Customer Gateway resource types to record direct relationships and deprecate indirect relationships. A direct relationship is defined as a one-way relationship (A->B) between a resource (A) and another resource (B), and is typically derived from the Describe API response of resource (A). An indirect relationship, on the other hand, is a relationship that AWS Config infers (B->A), in order to create a bidirectional relationship. For example, EC2 instance -> Security Group is a direct relationship, since security groups are returned as part of the describe API response for an EC2 instance. But Security Group -> EC2 instance is an indirect relationship, since EC2 instances are not returned when describing an EC2 Security group. Until now, AWS Config has recorded both direct and indirect relationships. With the launch of Advanced queries in March 2019, indirect relationships can easily be answered by running Structured Query Language (SQL) queries such as: SELECT resourceId, resourceType WHERE resourceType ='AWS::EC2::Instance' AND relationships.resourceId = 'sg-234213' By deprecating indirect relationships, we can optimize the information contained within a Configuration Item while reducing AWS Config costs related to relationship changes. This is especially useful in case of ephemeral workloads where there is a high volume of configuration changes for EC2 resource types. Which resource relationships are being removed? Resource Type: Related Resource Type 1 AWS::EC2::CustomerGateway: AWS::VPN::Connection 2 AWS::EC2::Instance: AWS::EC2::EIP, AWS::EC2::RouteTable 3 AWS::EC2::NetworkInterface: AWS::EC2::EIP, AWS::EC2::RouteTable 4 AWS::EC2::SecurityGroup: AWS::EC2::Instance, AWS::EC2::NetworkInterface 5 AWS::EC2::Subnet: AWS::EC2::Instance, AWS::EC2::NetworkACL, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable 6 AWS::EC2::VPC: AWS::EC2::Instance, AWS::EC2::InternetGateway, AWS::EC2::NetworkACL, AWS::EC2::NetworkInterface, AWS::EC2::RouteTable, AWS::EC2::Subnet, AWS::EC2::VPNGateway, AWS::EC2::SecurityGroup 7 AWS::EC2::VPNGateway: AWS::EC2::RouteTable, AWS::EC2::VPNConnection Alternate mechanism to retrieve this relationship information: The SelectResourceConfig API accepts a SQL SELECT command, performs the corresponding search, and returns resource configurations matching the properties. You can use this API to retrieve the same relationship information. For example, to retrieve the list of all EC2 Instances related to a particular VPC vpc-1234abc, you can use the following query: SELECT resourceId, resourceType WHERE resourceType ='AWS::EC2::Instance' AND relationships.resourceId = 'vpc-1234abc' If you have any questions regarding this deprecation plan, please contact AWS Support [1]. Additional sample queries to retrieve the relationship information for the resources listed above is provided in [2]. [1] https://aws.amazon.com/support [2] https://docs.aws.amazon.com/config/latest/developerguide/examplerelationshipqueries.html), EventMetadata={})

Java-Ressourcen

  • Weitere Informationen finden Sie unter der Schnittstelle HealthClient in der AWS SDK for Java APIReferenz und im Quellcode.

  • Weitere Informationen zu der Bibliothek, die in dieser Demo für DNS Suchvorgänge verwendet wird, finden Sie im Abschnitt dnsjava unter. GitHub

Probieren Sie die Python-Demo aus

Voraussetzung

Sie müssen Python 3 installieren.

Um das Python-Beispiel zu verwenden
  1. Laden Sie die Demo für AWS Health Hochverfügbarkeitsendpunkte von herunter GitHub.

  2. Navigieren Sie zum high-availability-endpoint/python Demo-Projektverzeichnis.

  3. Geben Sie in einem Befehlszeilenfenster die folgenden Befehle ein.

    pip3 install virtualenv virtualenv -p python3 v-aws-health-env
    Anmerkung

    Für Python 3.3 und höher können Sie das integrierte venv Modul verwenden, um die virtuelle Umgebung zu erstellen, anstatt sie zu installierenvirtualenv. Weitere Informationen finden Sie unter venv — Erstellung virtueller Umgebungen auf der Python-Website.

    python3 -m venv v-aws-health-env
  4. Geben Sie den folgenden Befehl ein, um die virtuelle Umgebung zu aktivieren.

    source v-aws-health-env/bin/activate
  5. Geben Sie den folgenden Befehl ein, um die Abhängigkeiten zu installieren.

    pip install -r requirements.txt
  6. Geben Sie die folgenden Befehle ein, um Ihre AWS Anmeldeinformationen anzugeben.

    export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" export AWS_SESSION_TOKEN="your-aws-token"
  7. Geben Sie den folgenden Befehl ein, um die Demo auszuführen.

    python3 main.py
    Beispiel : Ausgabe des AWS Health Ereignisses

    Das Codebeispiel gibt das letzte AWS Health Ereignis der letzten sieben Tage in Ihrem AWS Konto zurück. Die folgende Ausgabe gibt ein AWS Health Ereignis für eine AWS Sicherheitsbenachrichtigung zurück.

    INFO:botocore.credentials:Found credentials in environment variables.
    INFO:root:Details: {'arn': 'arn:aws:health:global::event/SECURITY/AWS_SECURITY_NOTIFICATION/AWS_SECURITY_NOTIFICATION_0e35e47e-2247-47c4-a9a5-876544042721', 
    'service': 'SECURITY', 'eventTypeCode': 'AWS_SECURITY_NOTIFICATION', 'eventTypeCategory': 'accountNotification', 'region': 'global', 'startTime': datetime.datetime(2020, 8, 19, 23, 30, 42, 476000, 
    tzinfo=tzlocal()), 'lastUpdatedTime': datetime.datetime(2020, 8, 20, 20, 44, 9, 547000, tzinfo=tzlocal()), 'statusCode': 'open', 'eventScopeCode': 'PUBLIC'}, description: 
    {'latestDescription': 'This is the second notice regarding TLS requirements on FIPS endpoints.\n\nWe
    are in the process of updating all AWS Federal Information Processing Standard (FIPS) endpoints across all AWS regions 
    to Transport Layer Security (TLS) version 1.2 by March 31, 2021 . In order to avoid an interruption in service, we encourage you to act now, by ensuring that you connect to AWS FIPS endpoints at a TLS version of 1.2. 
    If your client applications fail to support TLS 1.2 it will result in connection failures when TLS versions below 1.2 are no longer supported.\n\nBetween now and March 31, 2021 AWS will remove TLS 1.0 and TLS 1.1 support from each FIPS endpoint where no connections below TLS 1.2 are detected over a 30-day period. 
    After March 31, 2021 we may deploy this change to all AWS FIPS endpoints, even if there continue
    to be customer connections detected at TLS versions below 1.2. \n\nWe will provide additional updates and reminders on the AWS Security Blog, with a ‘TLS’ tag [1]. If you need further guidance or assistance, please contact AWS Support [2] or your Technical Account Manager (TAM). 
    Additional information is below.\n\nHow can I identify clients that are connecting with TLS
    1.0/1.1?\nFor customers using S3 [3], Cloudfront [4] or Application Load Balancer [5] you can use
    your access logs to view the TLS connection information for these services, and identify client
    connections that are not at TLS 1.2. If you are using the AWS Developer Tools on your clients, 
    you can find information on how to properly configure your client’s TLS versions by visiting Tools to Build on AWS [7] or our associated AWS Security Blog has a link for each unique code language [7].\n\nWhat is Transport Layer Security (TLS)?\nTransport Layer Security (TLS Protocols) are cryptographic protocols designed to provide secure communication across a computer network 
    [6].\n\nWhat are AWS FIPS endpoints? \nAll AWS services offer Transport Layer Security (TLS) 1.2 encrypted endpoints that can be used for all API calls. Some AWS services also offer FIPS 140-2 endpoints [9] for customers that require use of FIPS validated cryptographic libraries. \n\n[1] https://aws.amazon.com/blogs/security/tag/tls/\n[2] https://aws.amazon.com/support\n[3] 
    https://docs.aws.amazon.com/AmazonS3/latest/dev/LogFormat.html\n[4] https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html\n[5] https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html\n[6] https://aws.amazon.com/tools\n[7] https://aws.amazon.com/blogs/security/tls-1-2-to-become-the-minimum-for-all-aws-fips-endpoints\n[8] 
    https://en.wikipedia.org/wiki/Transport_Layer_Security\n[9] https://aws.amazon.com/compliance/fips'}
  8. Wenn Sie fertig sind, geben Sie den folgenden Befehl ein, um die virtuelle Maschine zu deaktivieren.

    deactivate

Python-Ressourcen

Anfragen signieren AWS Health API

Wenn Sie das AWS SDKs oder das AWS Command Line Interface (AWS CLI) verwenden, um Anfragen an zu stellen AWS, signieren diese Tools die Anfragen automatisch für Sie mit dem Zugriffsschlüssel, den Sie bei der Konfiguration der Tools angeben. Wenn Sie beispielsweise die Demoversion AWS SDK for Java für den vorherigen Endpunkt mit hoher Verfügbarkeit verwenden, müssen Sie Anfragen nicht selbst signieren.

Java-Codebeispiele

Weitere Beispiele zur Verwendung von AWS Health API mit dem AWS SDK for Java finden Sie in diesem Beispielcode.

Wenn Sie Anfragen stellen, empfehlen wir Ihnen dringend, die Anmeldeinformationen Ihres AWS Root-Kontos nicht für den regulären Zugriff auf zu verwenden AWS Health. Sie können die Anmeldeinformationen für einen IAM Benutzer verwenden. Weitere Informationen finden Sie im Benutzerhandbuch unter Sperren Sie die Root-Benutzerzugriffsschlüssel für Ihr AWS Konto. IAM

Wenn Sie das AWS SDKs oder das nicht verwenden AWS CLI, müssen Sie Ihre Anfragen selbst unterschreiben. Wir empfehlen Ihnen, AWS Signature Version 4 zu verwenden. Weitere Informationen finden Sie unter Signieren von AWS API Anfragen in der Allgemeine AWS-Referenz.