Mengakses API AWS Health - AWS Health

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengakses API AWS Health

AWS Health adalah layanan web RESTful yang menggunakan HTTPS sebagai transportasi dan JSON sebagai format serialisasi pesan. Kode aplikasi Anda dapat membuat permintaan langsung ke API AWS Health. Bila Anda langsung menggunakan API REST, Anda harus menulis kode yang diperlukan untuk menandatangani dan autentikasi permintaan Anda. Untuk informasi lebih lanjut tentang operasi dan parameter AWS Health, lihatReferensi API AWS Health.

catatan

Anda harus memiliki paket Business, Enterprise On-Ramp, atau Support Perusahaan AWS Supportuntuk menggunakanAWS Health API. Jika Anda memanggilAWS Health API dariAWS akun yang tidak memiliki rencana Support Bisnis, Korporasi, atau Korporasi, atau Korporasi, Anda menerimaSubscriptionRequiredException galat.

Anda dapat menggunakan SDK AWS untuk merangkum panggilan API REST AWS Health, yang dapat menyederhanakan pengembangan aplikasi Anda. Anda menentukan kredensial AWS Anda, dan pustaka ini mengurus autentikasi dan meminta penandatanganan untuk Anda.

AWS Healthjuga menyediakanAWS Health Dashboard di yang dapat Anda gunakan untuk melihat dan mencari peristiwa dan mencari peristiwa dan mencari peristiwa dan mencari peristiwa dan mencari peristiwa dan mencari peristiwa dan mencari peristiwa dan mencari peristiwa dan mencari peristiwa dan mencari peristiwa dan mencari peristiwaAWS Management Console Lihat Memulai AWS Health Dashboard Anda — Kesehatan akun Anda.

Titik akhir

API AWS Health mengikuti multi-Region application architecture dan memiliki dua titik akhir kewilayahan dalam konfigurasi aktif-pasif. Untuk mendukung failover DNS aktif-pasif, AWS Health menyediakan titik akhir tunggal, global. Anda dapat melakukan pencarian DNS pada titik akhir global untuk menentukan titik akhir aktif dan sesuai penandatanganan Wilayah AWS. Hal ini membantu Anda mengetahui titik akhir mana yang digunakan dalam kode Anda, sehingga Anda bisa mendapatkan informasi terbaru dari AWS Health.

Ketika Anda membuat permintaan ke titik akhir global, Anda harus menentukan akses kredensial AWS Anda ke titik akhir wilayah yang Anda targetkan dan mengkonfigurasi penandatanganan untuk Wilayah Anda. Jika tidak, autentikasi Anda mungkin gagal. Untuk informasi selengkapnya, lihat Menandatangani permintaan API AWS Health.

Tabel berikut menggambarkan konfigurasi default.

Deskripsi Penandatanganan Wilayah Titik akhir Protokol
Aktif

us-east-1

health.us-east-1.amazonaws.com

HTTPS
Pasif

us-east-2

health.us-east-2.amazonaws.com

HTTPS
Global

us-east-1

catatan

Ini adalah Wilayah penandatanganan titik akhir aktif saat ini.

global.health.amazonaws.com

HTTPS

Untuk menentukan apakah titik akhir adalah Titik akhir aktif, lakukan pencarian DNS pada Titik akhir global CNAME, kemudian ekstrak Wilayah AWS dari nama terselesaikan.

contoh : Pencarian DNS pada titik akhir global

Perintah berikut melengkapi pencarian DNS pada titik akhir global.health.amazonaws.com. Perintah kemudian mengembalikan titik akhir Wilayah us-east-1. Output ini memberitahu Anda titik akhir mana yang harus Anda gunakan untuk AWS Health.

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

Kedua titik akhir aktif dan pasif mengembalikan data AWS Health. Namun, data terbaru AWS Health hanya tersedia dari titik akhir aktif. Data dari titik akhir pasif akhirnya akan konsisten dengan titik akhir aktif. Kami merekomendasikan Anda me-restart setiap alur kerja ketika titik akhir aktif berubah.

Menggunakan demo titik akhir ketersediaan tinggi

Dalam contoh kode berikut, AWS Health menggunakan pencarian DNS terhadap titik akhir global untuk menentukan titik akhir kewilayahan aktif dan penandatanganan Wilayah. Kemudian, kode me-restart alur kerja jika titik akhir aktif berubah.

Menggunakan demo Java

Prasyarat

Anda harus menginstal Gradle.

Untuk menggunakan contoh Java
  1. Unduh demo endpoint ketersediaanAWS Health tinggi dari GitHub.

  2. Arahkan ke proyek demo direktori high-availability-endpoint/java.

  3. Dalam jendela baris perintah, masukkan perintah berikut.

    gradle build
  4. Masukkan perintah berikut untuk menentukan kredensial AWS Anda.

    export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" export AWS_SESSION_TOKEN="your-aws-token"
  5. Masukkan perintah berikut untuk menjalankan demo.

    gradle run
    contoh : output peristiwa AWS Health

    Contoh kode tersebut mengembalikan peristiwa AWS Health terkini dalam tujuh hari terakhir di akun AWS Anda. Dalam contoh berikut, output mencakup peristiwa AWS Health untuk layanan AWS Config.

    > 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={})

Sumber daya Java

  • Untuk informasi selengkapnya, lihat Antarmuka HealthClient di ReferensiAWS SDK for Java API dan kode sumber.

  • Untuk informasi lebih lanjut tentang pustaka yang digunakan dalam demo ini untuk pencarian DNS, lihat dnsjava di GitHub.

Menggunakan demo Python

Prasyarat

Anda harus menginstal Python 3.

Untuk menggunakan contoh Python
  1. Unduh demo endpoint ketersediaanAWS Health tinggi dari GitHub.

  2. Arahkan ke proyek demo direktori high-availability-endpoint/python.

  3. Di jendela baris perintah, masukkan perintah berikut.

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

    Untuk Python 3.3 dan selanjutnya, Anda dapat menggunakan modul venv bawaan untuk menciptakan lingkungan virtual, bukan memasang virtualenv. Untuk informasi lebih lanjut, lihat venv - Penciptaan lingkungan virtual di situs web Python.

    python3 -m venv v-aws-health-env
  4. Masukkan perintah berikut untuk mengaktifkan lingkungan virtual.

    source v-aws-health-env/bin/activate
  5. Masukkan perintah berikut untuk menginstal dependensi.

    pip install -r requirements.txt
  6. Masukkan perintah berikut untuk menentukan kredensial AWS Anda.

    export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" export AWS_SESSION_TOKEN="your-aws-token"
  7. Masukkan perintah berikut untuk menjalankan demo.

    python3 main.py
    contoh : output peristiwa AWS Health

    Contoh kode mengembalikan peristiwa AWS Health terkini dalam tujuh hari terakhir di akun AWS Anda. Output berikut mengembalikan peristiwa AWS Health untuk notifikasi keamanan AWS.

    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. Setelah selesai, masukkan perintah berikut untuk nonaktifkan mesin virtual.

    deactivate

Sumber daya Python

Menandatangani permintaan API AWS Health

Ketika Anda menggunakan SDK AWS atau AWS Command Line Interface (AWS CLI) untuk membuat permintaan ke AWS, alat-alat ini secara otomatis memasukkan permintaan untuk Anda dengan access key yang Anda tentukan saat mengonfigurasikan alatnya. Misalnya, jika Anda menggunakan AWS SDK for Java untuk demo titik akhir ketersediaan tinggi sebelumnya, Anda tidak perlu menandatangani permintaan sendiri.

Contoh kode Java

Untuk contoh lebih lanjut tentang cara menggunakan API AWS Health dengan AWS SDK for Java, lihat contoh kode ini.

Ketika Anda membuat permintaan, kami sangat menyarankan agar Anda tidak menggunakan kredensial akun root AWS Anda untuk akses reguler ke AWS Health. Anda dapat menggunakan kredensial untuk membuat pengguna IAM. Untuk informasi lebih lanjut, lihat Mengunci kunci akses pengguna akun root AWS di Panduan Pengguna IAM.

Jika Anda tidak menggunakan SDK AWS atau AWS CLI, maka Anda harus menandatangani permintaan Anda sendiri. Kami merekomendasi Anda menggunakan Tanda tangan AWS Versi 4. Untuk informasi selengkapnya, lihat Menandatangani Permintaan API AWS di Referensi Umum AWS.