Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Integrazione AWS Health con altri sistemi tramite AWS Health API
AWS Health è un servizio RESTful Web che utilizza HTTPS come formato di trasporto e JSON serializzazione dei messaggi. Il codice dell'applicazione può effettuare richieste direttamente a. AWS Health API Quando si utilizza REST API direttamente, è necessario scrivere il codice necessario per firmare e autenticare le richieste. Per ulteriori informazioni sulle AWS Health operazioni e sui parametri, consulta la Guida AWS Health APIdi riferimento.
Nota
È necessario disporre di un piano Business, Enterprise On-Ramp o Enterprise Support di AWS SupportSubscriptionRequiredException
errore.
Puoi utilizzare il AWS SDKs per completare le AWS Health REST API chiamate, il che può semplificare lo sviluppo delle applicazioni. Specificate AWS le vostre credenziali e queste librerie si occuperanno dell'autenticazione e della richiesta di firma per voi.
AWS Health fornisce inoltre una AWS Health dashboard AWS Management Console che è possibile utilizzare per visualizzare e cercare eventi ed entità interessate. Per informazioni, consulta Guida introduttiva alla AWS Health dashboard.
Scelta degli endpoint per le richieste AWS Health API
AWS Health APISegue un'architettura applicativa multiregionale Architettura applicativa con due endpoint regionali in una configurazione attiva-passiva. Per supportare il DNS failover attivo-passivo, fornisce un unico endpoint globale. AWS Health È possibile eseguire una DNS ricerca sull'endpoint globale per determinare l'endpoint attivo e la regione di firma corrispondente. AWS In questo modo è possibile sapere quale endpoint utilizzare nel codice, in modo da ottenere le informazioni più recenti. AWS Health
Quando effettui una richiesta all'endpoint globale, devi specificare le tue credenziali di AWS accesso all'endpoint regionale a cui desideri rivolgerti e configurare la firma per la tua regione. In caso contrario, l'autenticazione potrebbe fallire. Per ulteriori informazioni, consulta Richieste di firma AWS Health API.
La tabella seguente rappresenta la configurazione predefinita.
Descrizione | Regione di firma | Endpoint | Protocollo |
---|---|---|---|
Attivo |
us-east-1 |
health.us-east-1.amazonaws.com |
HTTPS |
Passiva |
us-east-2 |
health.us-east-2.amazonaws.com |
HTTPS |
Globale |
us-east-1 NotaQuesta è la regione di firma dell'endpoint attualmente attivo. |
global.health.amazonaws.com |
HTTPS |
Per determinare se un endpoint è l'endpoint attivo, esegui una DNS ricerca sull'endpoint globale, quindi estrai la regione dal nome risolto. CNAME AWS
Esempio : ricerca sull'endpoint globale DNS
Il comando restituisce quindi l'endpoint Region. Questo output indica per quale endpoint utilizzare. AWS Health
dig global.health.amazonaws.com | grep CNAME
global.health.amazonaws.com. 10 IN CNAME health.us-east-1.amazonaws.com
Suggerimento
Sia gli endpoint attivi che quelli passivi restituiscono AWS Health dati. Tuttavia, i AWS Health dati più recenti sono disponibili solo dall'endpoint attivo. I dati dell'endpoint passivo saranno alla fine coerenti con l'endpoint attivo. Ti consigliamo di riavviare qualsiasi flusso di lavoro quando l'endpoint attivo cambia.
Prova AWS Health le demo degli endpoint
Nei seguenti esempi di codice, AWS Health utilizza una DNS ricerca sull'endpoint globale per determinare l'endpoint regionale attivo e la regione di firma. Quindi, il codice riavvia il flusso di lavoro se l'endpoint attivo cambia.
Prova la demo di Java
Prerequisito
È necessario installare Gradle.
Per usare l'esempio Java
-
Scarica la demo degli endpoint AWS Health ad alta disponibilità
da GitHub. -
Vai alla
high-availability-endpoint/java
directory del progetto dimostrativo. -
In una finestra della riga di comando, immettete il seguente comando.
gradle build
-
Immettete i seguenti comandi per specificare le vostre AWS credenziali.
export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" export AWS_SESSION_TOKEN="
your-aws-token
" -
Immettete il seguente comando per eseguire la demo.
gradle run
Esempio : output AWS Health dell'evento
L'esempio di codice restituisce l' AWS Health evento recente degli ultimi sette giorni nel tuo AWS account. Nell'esempio seguente, l'output include un AWS Health evento per il AWS Config servizio.
> 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={})
Risorse Java
-
Per ulteriori informazioni, consulta l'interfaccia HealthClient
nel AWS SDK for Java APIriferimento e il codice sorgente . -
Per ulteriori informazioni sulla libreria utilizzata in questa demo per le DNS ricerche, vedere dnsjava
in. GitHub
Prova la demo di Python
Prerequisito
È necessario installare Python 3
Per usare l'esempio Python
-
Scarica la demo degli endpoint AWS Health ad alta disponibilità
da. GitHub -
Vai alla
high-availability-endpoint/python
directory del progetto dimostrativo. -
In una finestra della riga di comando, inserisci i seguenti comandi.
pip3 install virtualenv virtualenv -p python3 v-aws-health-env
Nota
Per Python 3.3 e versioni successive, puoi usare il
venv
modulo integrato per creare l'ambiente virtuale, invece di installarlo.virtualenv
Per ulteriori informazioni, vedere venv - Creazione di ambienti virtualisul sito Web Python. python3 -m venv v-aws-health-env
-
Immettere il seguente comando per attivare l'ambiente virtuale.
source v-aws-health-env/bin/activate
-
Immettere il seguente comando per installare le dipendenze.
pip install -r requirements.txt
-
Immettete i seguenti comandi per specificare le vostre AWS credenziali.
export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" export AWS_SESSION_TOKEN="
your-aws-token
" -
Immettete il seguente comando per eseguire la demo.
python3 main.py
Esempio : output AWS Health dell'evento
L'esempio di codice restituisce l' AWS Health evento recente degli ultimi sette giorni nel tuo AWS account. L'output seguente restituisce un AWS Health evento per una notifica AWS di sicurezza.
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'}
-
Quando hai finito, inserisci il seguente comando per disattivare la macchina virtuale.
deactivate
Risorse Python
-
Per ulteriori informazioni su
Health. Client
, vedere il riferimento AWS SDKfor Python (Boto3). API -
Per ulteriori informazioni sulla libreria utilizzata in questa demo per le DNS ricerche, consulta il toolkit dnspython
e il codice sorgente su. GitHub
Richieste di firma AWS Health API
Quando utilizzi AWS SDKs o the AWS Command Line Interface (AWS CLI) per effettuare richieste AWS, questi strumenti firmano automaticamente le richieste per te con la chiave di accesso specificata al momento della configurazione degli strumenti. Ad esempio, se utilizzate la AWS SDK for Java precedente demo dell'endpoint ad alta disponibilità, non è necessario firmare personalmente le richieste.
Esempi di codice Java
Per ulteriori esempi su come utilizzare AWS Health API with the AWS SDK for Java, consulta questo codice di esempio.
Quando effettui richieste, ti consigliamo vivamente di non utilizzare le credenziali del tuo account AWS root per l'accesso regolare a AWS Health. È possibile utilizzare le credenziali di un IAM utente. Per ulteriori informazioni, consulta Lock Away Your AWS Account Root User Access Keys nella Guida per l'IAMutente.
Se non utilizzi il AWS SDKs o il AWS CLI, devi firmare tu stesso le tue richieste. Ti consigliamo di utilizzare la versione 4 di AWS Signature. Per ulteriori informazioni, vedere AWS APIRichieste di firma in Riferimenti generali di AWS.