AWSSupport-ContainEC2Instance - 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-ContainEC2Instance

Deskripsi

AWSSupport-ContainEC2InstanceRunbook menyediakan solusi otomatis untuk prosedur yang diuraikan dalam artikel Bagaimana cara mengisolasi EC2 Instans Amazon saat dihadapkan dengan kemungkinan dikompromikan atau mencurigakan? Cabang otomatisasi tergantung pada nilai yang Anda tentukan.

Bagaimana cara kerjanya?

Runbook Otomasi ini AWSSupport-ContainEC2Instance melakukan penahanan jaringan EC2 Instans Amazon melalui serangkaian langkah terkoordinasi. Ketika dieksekusi dalam Contain mode, pertama-tama memvalidasi parameter input dan memeriksa apakah instance tidak dihentikan. Kemudian mencadangkan konfigurasi grup keamanan saat ini ke bucket Amazon S3 untuk pemulihan nanti. Runbook membuat dua grup keamanan: grup keamanan “semua akses” sementara dan grup keamanan “penahanan” terakhir. Secara bertahap transisi antarmuka jaringan instance dari grup keamanan asli mereka ke grup keamanan semua akses, dan akhirnya ke grup keamanan penahanan. Jika ditentukan, itu menciptakan keduanya tidak terenkripsi dan terenkripsi AMI backup dari instance. Untuk instance dalam grup Auto Scaling, ini menangani modifikasi grup Auto Scaling yang diperlukan dan membawa instance ke status siaga. Ketika dijalankan dalam Release mode, ia mengembalikan instance ke konfigurasi jaringan aslinya menggunakan pengaturan cadangan dari Amazon S3. Runbook mendukung DryRun parameter untuk melihat pratinjau tindakan tanpa membuat perubahan aktual, dan menyertakan mekanisme penanganan dan pelaporan kesalahan yang komprehensif di seluruh alur kerja penahanan dan rilis.

penting
  • Runbook ini melakukan berbagai operasi yang memerlukan hak istimewa yang lebih tinggi, seperti memodifikasi grup keamanan, membuat AMIs, dan berinteraksi dengan grup Auto Scaling. Tindakan ini berpotensi menyebabkan eskalasi hak istimewa atau memengaruhi beban kerja lain di akun Anda. Anda harus meninjau izin yang diberikan untuk peran yang ditentukan oleh AutomationAssumeRole parameter dan memastikannya sesuai untuk kasus penggunaan yang dimaksudkan. Anda dapat merujuk ke AWS dokumentasi berikut untuk informasi lebih lanjut tentang izin IAM:. AWS Identity and Access Management (IAM) PermissionsAWS Systems Manager Automation Permissions

  • Runbook ini melakukan tindakan mutatif yang berpotensi menyebabkan tidak tersedianya atau gangguan pada beban kerja Anda. Secara khusus, ini memodifikasi grup keamanan yang terkait dengan target Amazon EC2 Instance, yang dapat memengaruhi konektivitas jaringan. Selain itu, jika instance merupakan bagian dari grup Auto Scaling, runbook dapat mengubah konfigurasi grup, yang berpotensi memengaruhi perilaku penskalaannya.

  • Selama proses penahanan, buku runbook ini menciptakan sumber daya tambahan, seperti grup keamanan dan AMIs. Meskipun sumber daya ini ditandai untuk identifikasi, Anda harus menyadari pembuatannya dan memastikan pembersihan atau pengelolaan yang tepat setelah proses penahanan selesai.

  • Jika Action parameter disetel keRelease, runbook ini mencoba mengembalikan konfigurasi EC2 Instans Amazon ke status semula. Namun, ada risiko bahwa proses restorasi mungkin gagal, meninggalkan instance dalam keadaan tidak konsisten. Runbook memberikan instruksi untuk restorasi manual jika terjadi kegagalan tersebut, tetapi Anda harus siap untuk menangani masalah potensial selama proses restorasi.

Disarankan untuk meninjau runbook secara menyeluruh, memahami potensi dampaknya, dan mengujinya di lingkungan non-produksi sebelum menjalankannya di lingkungan produksi Anda.

Jalankan Otomasi ini (konsol)

Jenis dokumen

Otomatisasi

Pemilik

Amazon

Platform

/

Izin IAM yang diperlukan

AutomationAssumeRoleParameter memerlukan tindakan berikut untuk menggunakan runbook dengan sukses.

  • penskalaan otomatis: CreateOrUpdateTags

  • penskalaan otomatis: DeleteTags

  • penskalaan otomatis: DescribeAutoScalingGroups

  • penskalaan otomatis: DescribeAutoScalingInstances

  • penskalaan otomatis: DescribeTags

  • penskalaan otomatis: EnterStandby

  • penskalaan otomatis: ExitStandby

  • penskalaan otomatis: UpdateAutoScalingGroup

  • EC2: AuthorizeSecurityGroupEgress

  • EC2: AuthorizeSecurityGroupIngress

  • EC2: CopyImage

  • EC2: CreateImage

  • EC2: CreateSecurityGroup

  • EC2: CreateSnapshot

  • EC2: CreateTags

  • EC2: DeleteSecurityGroup

  • EC2: DeleteTags

  • EC2: DescribeImages

  • EC2: DescribeInstances

  • EC2: DescribeSecurityGroups

  • EC2: DescribeSnapshots

  • EC2: DescribeTags

  • EC2: ModifyNetworkInterfaceAttribute

  • EC2: RevokeSecurityGroupEgress

  • km: CreateGrant

  • km: DescribeKey

  • km: GenerateDataKeyWithoutPlaintext

  • km: ReEncryptFrom

  • km: ReEncryptTo

  • s3: CreateBucket

  • s3: DeleteObjectTagging

  • s3: GetAccountPublicAccessBlock

  • s3: GetBucketAcl

  • s3: GetBucketLocation

  • s3: GetBucketOwnershipControls

  • s3: GetBucketPolicy

  • s3: GetBucketPolicyStatus

  • s3: GetBucketPublicAccessBlock

  • s3: GetObject

  • s3: ListBucket

  • s3: PutAccountPublicAccessBlock

  • s3: PutBucketPolicy

  • s3: PutBucketVersioning

  • s3: PutObject

  • s3: PutObjectTagging

Contoh Kebijakan:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadOperations", "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeTags", "ec2:DescribeImages", "ec2:DescribeInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeSnapshots", "ec2:DescribeTags", "kms:DescribeKey", "s3:GetAccountPublicAccessBlock", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:GetBucketOwnershipControls", "s3:GetBucketPolicy", "s3:GetBucketPolicyStatus", "s3:GetBucketPublicAccessBlock", "s3:GetObject", "s3:ListBucket" ], "Resource": "*" }, { "Sid": "WriteOperations", "Effect": "Allow", "Action": [ "autoscaling:CreateOrUpdateTags", "autoscaling:DeleteTags", "autoscaling:EnterStandby", "autoscaling:ExitStandby", "autoscaling:UpdateAutoScalingGroup", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:CopyImage", "ec2:CreateImage", "ec2:CreateSecurityGroup", "ec2:CreateSnapshot", "ec2:CreateTags", "ec2:DeleteSecurityGroup", "ec2:DeleteTags", "ec2:ModifyNetworkInterfaceAttribute", "ec2:RevokeSecurityGroupEgress", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo", "s3:CreateBucket", "s3:DeleteObjectTagging", "s3:PutAccountPublicAccessBlock", "s3:PutBucketPolicy", "s3:PutBucketVersioning", "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "*" } ] }

Instruksi

Ikuti langkah-langkah ini untuk mengonfigurasi otomatisasi:

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

  2. Pilih Jalankan otomatisasi.

  3. Untuk parameter input, masukkan yang berikut ini:

    • AutomationAssumeRole (Opsional):

      • Deskripsi: (Opsional) Nama Sumber Daya Amazon (ARN) 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.

      • Tipe: AWS::IAM::Role::Arn

    • Tindakan (Diperlukan):

      • Deskripsi: (Diperlukan) Pilih Contain untuk mengisolasi EC2 instans Amazon atau Restore mencoba memulihkan konfigurasi asli konfigurasi EC2 instans Amazon dari cadangan sebelumnya.

      • Tipe: String

      • Pola yang Diizinkan: Contain|Restore

    • DryRun (Opsional):

      • Deskripsi: (Opsional) Saat diatur ketrue, otomatisasi tidak akan menjalankan perintah apa pun, melainkan akan melaporkan apa yang akan dicoba dilakukannya, merinci setiap langkah. Nilai default:true.

      • Jenis: Boolean

      • Nilai yang Diizinkan: true|false

    • Buat AMIBackup (Opsional):

      • Deskripsi: (Opsional) Ketika diatur ketrue, AMI EC2 Instans Amazon akan dibuat sebelum melakukan tindakan penahanan.

      • Jenis: Boolean

      • Nilai yang Diizinkan: true|false

    • KmsKey (Opsional):

      • Deskripsi: (Opsional) ID AWS KMS kunci yang akan digunakan untuk membuat terenkripsi AMI dari EC2 contoh Amazon target. Default diatur kealias/aws/ebs.

      • Tipe: String

      • Pola yang Diizinkan: ^(((arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:key/)?([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|mrk-[a-f0-9]{32}))|(arn:(aws|aws-cn|aws-us-gov):kms:([a-z]{2}|[a-z]{2}-gov)-[a-z]+-[0-9]{1}:[0-9]{12}:)?alias/.{1,})$

    • Backups3 BucketName (Bersyarat):

      • Deskripsi: Bucket Amazon S3 (Bersyarat) Amazon S3 untuk mengunggah konfigurasi Action kapan Contain ada atau untuk memulihkan konfigurasi Action kapan ada. Release Catatan: Jika bucket yang disediakan tidak ada di akun, otomatisasi akan membuat bucket Amazon S3 atas nama Anda.

      • Tipe: AWS::S3::Bucket::Name

    • TagIdentifier (Opsional):

      • Deskripsi: (Opsional) Tag dalam format Key=BatchId,Value=78925 yang akan ditambahkan ke AWS sumber daya yang dibuat atau dimodifikasi oleh buku runbook ini selama alur kerja penahanan. Tag ini dapat digunakan untuk mengidentifikasi dan mengelola sumber daya yang terkait selama proses penahanan. Selama alur kerja pemulihan, tag yang ditentukan oleh parameter ini akan dihapus dari sumber daya. Catatan: Kunci dan nilai tag peka huruf besar/kecil.

      • Tipe: String

      • Pola yang Diizinkan: ^$|^[Kk][Ee][Yy]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{1,128},[Vv][Aa][Ll][Uu][Ee]=[\\+\\-\\=\\.\\_\\:\\/@a-zA-Z0-9]{0,128}$

    • Backups3 BucketAccess (Bersyarat):

      • Deskripsi: (Bersyarat) ARN pengguna IAM atau peran yang akan diizinkan mengakses bucket Amazon S3 cadangan setelah menjalankan tindakan penahanan. Parameter ini Action diperlukan kapanContain. AutomationAssumeRole, atau jika tidak ada pengguna yang konteksnya otomatisasi berjalan secara otomatis ditambahkan ke daftar.

      • Tipe: String

      • Pola yang Diizinkan: ^$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):iam::[0-9]{12}:(role|user)\\/[\\w+\\/=,.@-]+$

    • IngressTrafficRules (Opsional):

      • Deskripsi: (Opsional) Peta aturan masuknya grup keamanan yang dipisahkan koma dengan Cidr IpProtocol, FromPort dan ToPort dalam format yang akan diterapkan [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] ke instance Amazon. EC2 Jika tidak ada aturan yang disediakan, grup keamanan tanpa aturan masuk akan dilampirkan ke EC2 instans Amazon, yang secara efektif mengisolasinya dari lalu lintas yang masuk.

      • Jenis: MapList

      • Pola yang Diizinkan: ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • EgressTrafficRules (Opsional):

      • Deskripsi: (Opsional) Peta aturan keluar grup keamanan yang dipisahkan koma dengan Cidr IpProtocol, FromPort dan ToPort dalam format yang akan diterapkan [{"Cidr": "1.2.3.4/32", "IpProtocol": "tcp", "FromPort":"22", "ToPort":"22"}] ke instans Amazon Amazon. EC2 Jika tidak ada aturan yang disediakan, grup keamanan tanpa aturan jalan keluar akan dilampirkan ke EC2 instans Amazon, yang secara efektif mencegah semua lalu lintas keluar.

      • Jenis: MapList

      • Pola yang Diizinkan: ^\\{\\}$|^\\{\"Cidr\":\"[\\x00-\\x7F+]{1,128}\",\"IpProtocol\":\"[\\x00-\\x7F+]{1,128}\",\"FromPort\":\"[\\x00-\\x7F+]{1,128}\",\"ToPort\":\"[\\x00-\\x7F+]{0,255}\"\\}

    • Backups3 KeyName (Opsional):

      • Deskripsi: (Opsional) Jika Action disetel keRestore, ini menentukan kunci Amazon S3 yang akan digunakan otomatisasi untuk mencoba memulihkan konfigurasi instans EC2 Amazon target. Kunci Amazon S3 biasanya mengikuti format ini:. {year}/{month}/{day}/{hour}/{minute}/{automation_execution_id}.json Kuncinya dapat diperoleh dari output eksekusi otomatisasi penahanan sebelumnya.

      • Tipe: String

      • Pola yang Diizinkan: ^[a-zA-Z0-9\\.\\-_\\\\!*'()/]{0,1024}$

  4. Pilih Jalankan.

  5. Otomatisasi dimulai.

  6. Dokumen melakukan langkah-langkah berikut:

    • ValidateRequiredInputs

      Memvalidasi bahwa semua input yang diperlukan disediakan.

    • AssertInstanceIsNotTerminated

      Memeriksa apakah EC2 Instance Amazon target tidak dihentikan (dihapus).

    • GetAutoScalingInstanceInfo

      Mendapatkan siklus hidup EC2 instans Amazon dan nama grup jika EC2 instans Amazon target adalah bagian dari grup Auto Scaling.

    • CheckBackupS3 BucketName

      Memeriksa apakah bucket Amazon S3 target berpotensi memberikan read atau akses write publik ke objeknya. Bucket Amazon S3 baru dibuat jika BackupS3BucketName bucket tidak ada.

    • BranchOnActionAndMode

      Cabang otomatisasi berdasarkan parameter input Action danDryRun.

    • BranchOnAutoScalingGroupMembership

      Mem-cabang otomatisasi berdasarkan apakah EC2 Instance Amazon target adalah bagian dari grup Auto Scaling dan status siklus hidupnya.

    • DescribeAutoScalingGroups

      Mendapatkan dan menyimpan konfigurasi grup Amazon EC2 Auto Scaling terkait.

    • ModifyAutoScalingGroup

      Memodifikasi konfigurasi grup EC2 Auto Scaling Amazon terkait untuk tindakan penahanan, menyetel instans EC2 Amazon ke status, dan Standby menyesuaikan kapasitas grup Auto Scaling. MinSize

    • BackupInstanceSecurityGroups

      Mendapatkan dan menyimpan konfigurasi grup keamanan EC2 Instans Amazon target.

    • CreateAllAccessSecurityGroup

      Membuat grup keamanan sementara yang memungkinkan semua lalu lintas masuk yang menggantikan grup keamanan EC2 Instans Amazon target.

    • CreateContainmentSecurityGroup

      Membuat grup keamanan penahanan terbatas dengan aturan masuk dan keluar yang ditentukan, dan menggantikan grup semua akses sementara dengannya.

    • BranchOnCreateAMIBackup

      Cabang otomatisasi berdasarkan parameter CreateAMIBackup input.

    • AssertSourceInstanceRootVolumeIsEbs

      Memeriksa apakah volume root EC2 Instans Amazon target adalah Amazon EBS.

    • CreateImage

      Menciptakan sebuah AMI dari target Amazon EC2 Instance.

    • RestoreInstanceConfiguration

      Memulihkan konfigurasi EC2 Instans Amazon target dari cadangan.

    • ReportContain

      Mengeluarkan detail dry run untuk tindakan penahanan.

    • ReportRestore

      Menghasilkan detail dry run untuk tindakan pemulihan.

    • ReportRestoreFailure

      Memberikan instruksi untuk memulihkan konfigurasi asli EC2 Instans Amazon target selama skenario kegagalan alur kerja pemulihan.

    • ReportContainmentFailure

      Memberikan instruksi untuk memulihkan konfigurasi asli EC2 Instans Amazon target selama skenario kegagalan alur kerja penahanan.

    • FinalOutput

      Menghasilkan detail tindakan penahanan.

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

    • FinalOutput.Keluaran

      Mengeluarkan detail tindakan penahanan yang dilakukan oleh runbook ini saat DryRun disetel ke False.

    • RestoreInstanceConfiguration.Keluaran

      Mengeluarkan tindakan pemulihan yang dilakukan oleh runbook ini saat DryRun disetel ke False.

    • ReportContain.Keluaran

      Mengeluarkan detail tindakan penahanan yang dilakukan oleh runbook ini saat DryRun disetel ke True.

    • ReportRestore.Keluaran

      Mengeluarkan detail tindakan pemulihan yang dilakukan oleh runbook ini saat DryRun disetel ke True.

    • ReportContainmentFailure.Keluaran

      Memberikan instruksi untuk memulihkan konfigurasi asli EC2 Instans Amazon target selama skenario kegagalan alur kerja penahanan.

    • ReportRestoreFailure.Keluaran

      Memberikan instruksi untuk memulihkan konfigurasi asli EC2 Instans Amazon target selama skenario kegagalan alur kerja pemulihan.

Referensi

Otomatisasi Systems Manager