AWSSupport-TroubleshootGlueConnection - AWS Systems Manager Referensi buku runbook otomatisasi

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

AWSSupport-TroubleshootGlueConnection

Deskripsi

AWSSupport-TroubleshootGlueConnectionsRunbook membantu memecahkan masalah koneksi AWS Glue . Target koneksi yang diuji harus dicapai melalui koneksi JDBC dan dapat berupa cluster/instance Amazon Relational Database Service (Amazon RDS), cluster Amazon Redshift, atau target lain yang dapat diakses melalui JDBC. Dalam dua kasus pertama, alat Reachability Analyzer digunakan untuk menentukan apakah konektivitas antara source AWS Glue() dan target (Amazon RDS atau Amazon Redshift) diberikan.

Jika target koneksi bukan Amazon RDS atau Amazon Redshift, konektivitas masih diuji dengan membuat AWS Lambda fungsi di subnet yang sama dengan koneksi (titik keberadaan jaringan) dan memeriksa apakah nama target dapat diselesaikan dan apakah dapat dijangkau di port target. AWS Glue

penting

Untuk menjalankan pemeriksaan Reachability Analyzer, Elastic Network Interfaces akan dibuat di setiap subnet sumber data koneksi. Pastikan Anda memiliki cukup gratis IPs pada subnet tersebut dan bahwa konsumsi satu IP tidak akan memengaruhi beban kerja Anda sebelum menjalankan otomatisasi ini.

penting

Semua sumber daya yang dibuat oleh otomatisasi ini ditandai sehingga dapat dengan mudah ditemukan. Tag yang digunakan adalah:

  • AWSSupport-TroubleshootGlueConnection: benar

  • AutomationExecutionId: Amazon EC2 Systems Manager Execution Id

Bagaimana cara kerjanya?

Runbook melakukan langkah-langkah berikut:

  • Menjelaskan AWS Glue koneksi untuk mendapatkan informasi sumber (subnet dan grup keamanan) untuk pemeriksaan konektivitas.

  • Mengambil informasi target (subnet dan grup keamanan) dari sumber data yang direferensikan dalam URL JDBC atau dari parameter dan jika ada. DatasourceSecurityGroups DatasourceSubnets

  • Jika sumber data yang ada di URL JDBC adalah instans atau klaster Amazon RDS atau kluster Amazon Redshift, otomatisasi ini dibuat menggunakan sumber dan informasi target yang dikumpulkan pada langkah sebelumnya dan ENIs menggunakan Reachability Analyzer untuk melakukan pemeriksaan konektivitas di antara keduanya.

  • Fungsi Lambda (titik kehadiran jaringan, dalam konteks otomatisasi ini) digunakan untuk melakukan konektivitas L4 dan pemeriksaan resolusi nama.

  • Fungsi Lambda yang sama digunakan untuk melakukan pemeriksaan terhadap titik akhir Amazon S3.

  • Simulator Kebijakan digunakan untuk menentukan apakah peran IAM yang digunakan dalam koneksi memiliki izin yang diperlukan.

  • Otomatisasi memeriksa apakah grup keamanan yang digunakan oleh koneksi memiliki konfigurasi yang diharapkan.

  • Laporan dihasilkan yang berisi kemungkinan penyebab kegagalan dalam operasi koneksi pengujian dan/atau juga pengujian yang berhasil dilakukan.

Jalankan Otomasi ini (konsol)

Jenis dokumen

Otomatisasi

Pemilik

Amazon

Platform

/

Izin IAM yang diperlukan

AutomationAssumeRoleParameter memerlukan tindakan berikut untuk menggunakan runbook dengan sukses.

  • cloudformation:CreateStack

  • cloudformation:DeleteStack

  • ec2:CreateNetworkInsightsPath

  • ec2:CreateNetworkInterface

  • ec2:CreateTags

  • ec2:DeleteNetworkInsightsAnalysis

  • ec2:DeleteNetworkInsightsPath

  • ec2:DeleteNetworkInterface

  • ec2:StartNetworkInsightsAnalysis

  • iam:AttachRolePolicy

  • iam:CreateRole

  • iam:DeleteRole

  • iam:DeleteRolePolicy

  • iam:DetachRolePolicy

  • iam:PutRolePolicy

  • iam:TagRole

  • lambda:CreateFunction

  • lambda:DeleteFunction

  • lambda:TagResource

  • logs:CreateLogGroup

  • logs:DeleteLogGroup

  • logs:PutRetentionPolicy

  • logs:TagResource

  • glue:GetConnection

  • glue:GetDataCatalogEncryptionSettings

  • cloudformation:DescribeStacks

  • cloudformation:DescribeStackEvents

  • ec2:DescribeDhcpOptions

  • ec2:DescribeNetworkInsightsPaths

  • ec2:DescribeNetworkInsightsAnalyses

  • ec2:DescribeSecurityGroupRules

  • ec2:DescribeSecurityGroups

  • ec2:DescribeSubnets

  • ec2:DescribeVpcs

  • ec2:DescribeVpcAttribute

  • iam:GetRole

  • iam:ListAttachedRolePolicies

  • iam:SimulatePrincipalPolicy

  • kms:DescribeKey

  • lambda:InvokeFunction

  • lambda:GetFunction

  • s3:GetEncryptionConfiguration

  • iam:PassRole

penting

Selain tindakan yang disebutkan di atas, Amazon AutomationAssumeRole harus memiliki kebijakan VPCReachability AnalyzerFullAccessPolicy terkelola terlampir sehingga pengujian Reachability Analyzer berhasil dilakukan.

Berikut adalah contoh kebijakan yang dapat diberikan untukAutomationAssumeRole:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "TaggedAWSResourcesPermissions", "Effect": "Allow", "Condition": { "StringEquals": { "aws:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true" } }, "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:TagRole", "lambda:CreateFunction", "lambda:DeleteFunction", "lambda:TagResource", "logs:DeleteLogGroup", "logs:CreateLogGroup", "logs:PutRetentionPolicy", "logs:TagResource", "cloudformation:CreateStack", "cloudformation:DeleteStack" ], "Resource": "*" }, { "Sid": "TaggedEC2ResourcesPermissions", "Effect": "Allow", "Condition": { "StringEquals": { "ec2:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true" } }, "Action": [ "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Sid": "PutRolePolicy", "Effect": "Allow", "Condition": { "StringEquals": { "iam:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true" } }, "Action": [ "iam:PutRolePolicy", "iam:DeleteRolePolicy" ], "Resource": "*" }, { "Sid": "InvokeFunction", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:*:lambda:*:*:function:point-of-presence-*" }, { "Sid": "UnTaggedActions", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInsightsPath", "ec2:DeleteNetworkInsightsAnalysis", "ec2:DeleteNetworkInsightsPath", "ec2:CreateNetworkInterface", "ec2:CreateTags", "ec2:StartNetworkInsightsAnalysis", "glue:GetConnection", "glue:GetDataCatalogEncryptionSettings", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInsightsPaths", "ec2:DescribeNetworkInsightsAnalyses", "ec2:DescribeSecurityGroupRules", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeVpcAttribute", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:SimulatePrincipalPolicy", "kms:DescribeKey", "lambda:GetFunction", "s3:GetEncryptionConfiguration" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:*:iam::*:role/point-of-presence-*", "Condition": { "StringLikeIfExists": { "iam:PassedToService": "lambda.amazonaws.com" } } } ] }

Instruksi

Ikuti langkah-langkah ini untuk mengonfigurasi otomatisasi:

  1. Arahkan ke AWSSupport-TroubleshootGlueConnectionSystems Manager di bawah Documents.

  2. Pilih Jalankan otomatisasi.

  3. Untuk parameter input, masukkan yang berikut ini:

    • AutomationAssumeRole (Opsional):

      Nama Sumber Daya Amazon (ARN) dari peran AWS AWS Identity and Access Management (IAM) yang memungkinkan Otomasi Systems Manager untuk melakukan tindakan atas nama Anda. Jika tidak ada peran yang ditentukan, Systems Manager Automation menggunakan izin pengguna yang memulai runbook ini.

    • TestConnectionRole (Diperlukan)

      Nama Sumber Daya Amazon (ARN) dari peran IAM yang digunakan selama pengujian koneksi.

    • ConnectionName (Diperlukan)

      AWS Glue gagal menguji nama koneksi yang ingin Anda pecahkan masalah.

    • PersistReachabilityAnalyzerResults(Opsional)

      Bendera yang menginformasikan apakah hasil eksekusi Reachability Analyzer harus disimpan atau tidak. Default: false.

    • PointOfPresenceLogRetentionPeriod(Opsional)

      Jumlah hari log untuk titik keberadaan Lambda akan disimpan. Default: 7.

    • DatasourceSubnets (Opsional)

      Jika sumber data asli tidak tersedia, gunakan parameter ini untuk menyediakan subnet yang digunakan sehingga tes konektivitas masih dilakukan. Harus digunakan denganDatasourceSecurityGroups. Contoh:subnet-1,subnet-2.

    • DatasourceSecurityGroups (Opsional)

      Jika sumber data asli tidak tersedia, gunakan parameter ini untuk menyediakan grup keamanan yang digunakan sehingga tes konektivitas masih dilakukan. Harus digunakan denganDatasourceSubnets. Contoh:sg-1,sg-2.

    Input parameters form for AWS Glue connection troubleshooting with various configuration options.
  4. Pilih Jalankan.

  5. Otomatisasi dimulai.

  6. Runbook otomatisasi melakukan langkah-langkah berikut:

    • ParseInputs:

      Langkah ini memvalidasi kombinasi input. Jika keduanya DatasourceSecurityGroups dan DatasourceSubnets disediakan, mereka valid dan dikembalikan apa adanya. Jika tidak ada yang disediakan, dua daftar kosong dikembalikan. Jika hanya satu dari mereka disediakan, langkahnya memunculkan aValueException.

    • GetConnectionDetails:

      Langkah-langkah ini mengembalikan rincian AWS Glue koneksi yang disediakan.

    • ParseSecurityGroupList:

      Langkah ini digunakan untuk menggabungkan pemanfaatan in a for String future SecurityGroupIdList dalam otomatisasi ini.

    • GetConnectionData:

      Menentukan berdasarkan URL JDBC, jenis koneksi antara:RedShift,RdsInstance, RdsCluster dan. Other Selain itu, mengembalikan domain dan port yang digunakan dalam koneksi JDBC, Amazon VPC koneksi dan server nama domainnya.

    • GetNetworkDetails:

      Mendapatkan informasi subnet dan grup keamanan dari target Amazon RDS atau Amazon Redshift.

    • BuatENITemplate:

      Menghasilkan AWS CloudFormation template yang digunakan untuk membuat antarmuka jaringan yang digunakan untuk menguji konektivitas. Ini diperlukan untuk menjalankan alat Reachability Analyzer.

    • BuatENIStack:

      Membuat AWS CloudFormation tumpukan dari template yang dibuat pada langkah sebelumnya.

    • GetStackDetails:

      Menjelaskan AWS CloudFormation tumpukan yang dibuat di tumpukan sebelumnya dan mengambil TargetNetworkInterfaces informasi. SourceNetworkInterface

    • RunSourceToTargetCheck:

      Menjalankan pemeriksaan antara sumber dan target yang ENIs dibuat pada langkah sebelumnya menggunakan alat Reachability Analyzer.

    • HapusENIStack:

      Menghapus AWS CloudFormation tumpukan yang membuat Antarmuka Jaringan

    • CreateNetworkPointOfPresence:

      AWS CloudFormation menciptakan fungsi Lambda yang digunakan sebagai titik kehadiran jaringan.

    • GetFunctionName:

      Melakukan panggilan API stack AWS CloudFormation describe untuk mengambil nama fungsi Lambda yang dibuat pada langkah sebelumnya.

    • RunEndpointChecks:

      Menggunakan titik kehadiran jaringan untuk menentukan apakah titik akhir yang ada dalam koneksi JDBC dapat diselesaikan dan dapat dijangkau di port yang dideklarasikan.

    • Checks3konektivitas:

      Memeriksa konektivitas jaringan dari AWS Glue koneksi ke layanan Amazon S3.

    • DeletePointOfPresence:

      Menghapus AWS CloudFormation tumpukan yang menciptakan titik jaringan kehadiran Lambda.

    • IAMRoleIzin Uji:

      Memeriksa apakah peran IAM yang digunakan untuk pengujian memiliki izin yang diperlukan untuk menjalankannya.

    • CheckConnectionSecurityGroupReferencingRule:

      Memeriksa apakah grup keamanan yang digunakan dalam AWS Glue koneksi memungkinkan semua lalu lintas masuk dari dirinya sendiri. Ini akan mengembalikan daftar grup keamanan tanpa aturan ini, jika ada.

    • GenerateReport:

      Menghasilkan laporan yang berisi daftar temuan (kemungkinan alasan kegagalan dalam tes koneksi) dan langkah selanjutnya (upaya untuk menyelesaikan kegagalan uji koneksi).

  7. Setelah selesai, tinjau bagian Output untuk hasil eksekusi yang terperinci:

    • Hasil Otomasi

      Di bagian ini, Anda akan menemukan skenario yang menjelaskan kemungkinan penyebab kegagalan operasi koneksi pengujian (temuan) dan bagaimana mereka dapat diperbaiki (langkah selanjutnya). Jika otomatisasi tidak dapat menemukan penyebab kegagalan pengujian, ini akan diinformasikan di bagian ini juga.

    • Tes yang Berhasil

      Di bagian ini, Anda akan menemukan skenario yang menginformasikan apa yang telah berhasil diuji oleh otomatisasi ini. Pengujian yang berhasil berguna jika otomatisasi tidak dapat mengidentifikasi penyebab kegagalan koneksi pengujian karena mengurangi ruang lingkup penyelidikan dengan menginformasikan apa yang tidak berkontribusi untuk masalah ini.

    • Kesalahan Otomasi

      Di bagian ini, Anda akan menemukan skenario yang menjelaskan masalah yang terjadi selama otomatisasi, yang mungkin membatasi jumlah pengujian yang dapat dilakukan otomatisasi. Deskripsi skenario akan menginformasikan langkah mana yang gagal.

    Troubleshooting results for AWS Glue connection issues with DNS resolution and IAM role problems.

Referensi

Otomatisasi Systems Manager