Peringatan
Repositori untuk aws-nuke ini tidak lagi dikelola secara aktif. Kami menyarankan pengguna untuk beralih ke cabang proyek ini yang dipelihara secara aktif di ekristen/aws-nuke. Kami menghargai semua dukungan dan kontribusi yang kami terima sepanjang berlangsungnya proyek ini. Kami percaya bahwa fork ini akan terus memberikan fungsionalitas dan dukungan yang Anda harapkan dari aws-nuke. Harap perhatikan bahwa penghentian ini berarti kami tidak akan mengatasi masalah, menerima permintaan penarikan, atau membuat rilis mendatang dari repositori ini. Terima kasih atas pengertian dan dukungan Anda.
Hapus semua sumber daya dari akun AWS.
Status Pengembangan aws-nuke stabil, namun kemungkinan tidak semua sumber daya AWS tercakup dalam status tersebut. Didorong untuk menambahkan sumber daya yang hilang dan membuat Permintaan Tarik atau membuat Masalah.
Sadarilah bahwa aws-nuke adalah alat yang sangat merusak, oleh karena itu Anda harus sangat berhati-hati saat menggunakannya. Jika tidak, Anda mungkin menghapus data produksi.
Kami sangat menyarankan Anda untuk tidak menjalankan aplikasi ini di akun AWS mana pun, jika Anda tidak boleh kehilangan semua sumber daya.
Untuk mengurangi radius ledakan kecelakaan, ada beberapa tindakan pencegahan keselamatan:
--no-dry-run
untuk benar-benar menghapus sumber daya.prod
. String ini dikodekan secara hardcode dan disarankan untuk menambahkannya ke setiap akun produksi aktual (mis. mycompany-production-ecr
).Jangan ragu untuk membuat masalah, jika Anda mempunyai ide untuk meningkatkan prosedur keselamatan.
Kami biasanya merilis versi baru setelah cukup banyak perubahan yang terjadi dan telah diuji selama beberapa waktu.
Anda dapat menemukan biner Linux, macOS, dan Windows di halaman rilis, namun kami juga menyediakan versi dalam container di quay.io/rebuy/aws-nuke dan docker.io/rebuy/aws-nuke. Keduanya tersedia untuk berbagai arsitektur (amd64, arm64 & armv7).
Pertama-tama Anda perlu membuat file konfigurasi untuk aws-nuke . Ini yang minimal:
regions :
- eu-west-1
- global
account-blocklist :
- " 999999999999 " # production
accounts :
" 000000000000 " : {} # aws-nuke-example
Dengan konfigurasi ini kita dapat menjalankan aws-nuke :
$ aws-nuke -c config/nuke-config.yml --profile aws-nuke-example
aws-nuke version v1.0.39.gc2f318f - Fri Jul 28 16:26:41 CEST 2017 - c2f318f37b7d2dec0e646da3d4d05ab5296d5bce
Do you really want to nuke the account with the ID 000000000000 and the alias 'aws-nuke-example'?
Do you want to continue? Enter account alias to continue.
> aws-nuke-example
eu-west-1 - EC2DHCPOption - 'dopt-bf2ec3d8' - would remove
eu-west-1 - EC2Instance - 'i-01b489457a60298dd' - would remove
eu-west-1 - EC2KeyPair - 'test' - would remove
eu-west-1 - EC2NetworkACL - 'acl-6482a303' - cannot delete default VPC
eu-west-1 - EC2RouteTable - 'rtb-ffe91e99' - would remove
eu-west-1 - EC2SecurityGroup - 'sg-220e945a' - cannot delete group 'default'
eu-west-1 - EC2SecurityGroup - 'sg-f20f958a' - would remove
eu-west-1 - EC2Subnet - 'subnet-154d844e' - would remove
eu-west-1 - EC2Volume - 'vol-0ddfb15461a00c3e2' - would remove
eu-west-1 - EC2VPC - 'vpc-c6159fa1' - would remove
eu-west-1 - IAMUserAccessKey - 'my-user -> ABCDEFGHIJKLMNOPQRST' - would remove
eu-west-1 - IAMUserPolicyAttachment - 'my-user -> AdministratorAccess' - [UserName: "my-user", PolicyArn: "arn:aws:iam::aws:policy/AdministratorAccess", PolicyName: "AdministratorAccess"] - would remove
eu-west-1 - IAMUser - 'my-user' - would remove
Scan complete: 13 total, 11 nukeable, 2 filtered.
Would delete these resources. Provide --no-dry-run to actually destroy resources.
Seperti yang kita lihat, aws-nuke hanya mencantumkan semua sumber daya dan jalan keluar yang ditemukan. Hal ini karena bendera --no-dry-run
tidak ada. Juga ingin menghapus administrator. Kami tidak ingin melakukan ini, karena kami menggunakan pengguna ini untuk mengakses akun kami. Oleh karena itu kita harus memperluas konfigurasi sehingga mengabaikan pengguna ini:
regions :
- eu-west-1
account-blocklist :
- " 999999999999 " # production
accounts :
" 000000000000 " : # aws-nuke-example
filters :
IAMUser :
- " my-user "
IAMUserPolicyAttachment :
- " my-user -> AdministratorAccess "
IAMUserAccessKey :
- " my-user -> ABCDEFGHIJKLMNOPQRST "
$ aws-nuke -c config/nuke-config.yml --profile aws-nuke-example --no-dry-run
aws-nuke version v1.0.39.gc2f318f - Fri Jul 28 16:26:41 CEST 2017 - c2f318f37b7d2dec0e646da3d4d05ab5296d5bce
Do you really want to nuke the account with the ID 000000000000 and the alias 'aws-nuke-example'?
Do you want to continue? Enter account alias to continue.
> aws-nuke-example
eu-west-1 - EC2DHCPOption - 'dopt-bf2ec3d8' - would remove
eu-west-1 - EC2Instance - 'i-01b489457a60298dd' - would remove
eu-west-1 - EC2KeyPair - 'test' - would remove
eu-west-1 - EC2NetworkACL - 'acl-6482a303' - cannot delete default VPC
eu-west-1 - EC2RouteTable - 'rtb-ffe91e99' - would remove
eu-west-1 - EC2SecurityGroup - 'sg-220e945a' - cannot delete group 'default'
eu-west-1 - EC2SecurityGroup - 'sg-f20f958a' - would remove
eu-west-1 - EC2Subnet - 'subnet-154d844e' - would remove
eu-west-1 - EC2Volume - 'vol-0ddfb15461a00c3e2' - would remove
eu-west-1 - EC2VPC - 'vpc-c6159fa1' - would remove
eu-west-1 - IAMUserAccessKey - 'my-user -> ABCDEFGHIJKLMNOPQRST' - filtered by config
eu-west-1 - IAMUserPolicyAttachment - 'my-user -> AdministratorAccess' - [UserName: "my-user", PolicyArn: "arn:aws:iam::aws:policy/AdministratorAccess", PolicyName: "AdministratorAccess"] - would remove
eu-west-1 - IAMUser - 'my-user' - filtered by config
Scan complete: 13 total, 8 nukeable, 5 filtered.
Do you really want to nuke these resources on the account with the ID 000000000000 and the alias 'aws-nuke-example'?
Do you want to continue? Enter account alias to continue.
> aws-nuke-example
eu-west-1 - EC2DHCPOption - 'dopt-bf2ec3d8' - failed
eu-west-1 - EC2Instance - 'i-01b489457a60298dd' - triggered remove
eu-west-1 - EC2KeyPair - 'test' - triggered remove
eu-west-1 - EC2RouteTable - 'rtb-ffe91e99' - failed
eu-west-1 - EC2SecurityGroup - 'sg-f20f958a' - failed
eu-west-1 - EC2Subnet - 'subnet-154d844e' - failed
eu-west-1 - EC2Volume - 'vol-0ddfb15461a00c3e2' - failed
eu-west-1 - EC2VPC - 'vpc-c6159fa1' - failed
eu-west-1 - S3Object - 's3://rebuy-terraform-state-138758637120/run-terraform.lock' - triggered remove
Removal requested: 2 waiting, 6 failed, 5 skipped, 0 finished
eu-west-1 - EC2DHCPOption - 'dopt-bf2ec3d8' - failed
eu-west-1 - EC2Instance - 'i-01b489457a60298dd' - waiting
eu-west-1 - EC2KeyPair - 'test' - removed
eu-west-1 - EC2RouteTable - 'rtb-ffe91e99' - failed
eu-west-1 - EC2SecurityGroup - 'sg-f20f958a' - failed
eu-west-1 - EC2Subnet - 'subnet-154d844e' - failed
eu-west-1 - EC2Volume - 'vol-0ddfb15461a00c3e2' - failed
eu-west-1 - EC2VPC - 'vpc-c6159fa1' - failed
Removal requested: 1 waiting, 6 failed, 5 skipped, 1 finished
--- truncating long output ---
Seperti yang Anda lihat, aws-nuke sekarang mencoba menghapus semua sumber daya yang tidak difilter, tanpa mempedulikan ketergantungan di antara sumber daya tersebut. Hal ini menyebabkan kesalahan API yang dapat diabaikan. Kesalahan ini ditampilkan di akhir proses aws-nuke , jika terus muncul.
aws-nuke mencoba lagi menghapus semua sumber daya hingga semua sumber daya tertentu dihapus atau hingga hanya ada sumber daya dengan kesalahan yang tersisa.
Ada dua cara untuk mengautentikasi aws-nuke . Ada kredensial dan profil statis. Yang terakhir dapat dikonfigurasi dalam file kredensial bersama (yaitu ~/.aws/credentials
) atau file konfigurasi bersama (yaitu ~/.aws/config
).
Untuk menggunakan kredensial statis , diperlukan tanda baris perintah --access-key-id
dan --secret-access-key
. Bendera --session-token
hanya diperlukan untuk sesi sementara.
Untuk menggunakan profil bersama, diperlukan tanda baris perintah --profile
. Profil harus ditentukan dengan kredensial statis di file kredensial bersama atau di file konfigurasi bersama dengan peran asumsi.
Dimungkinkan untuk mengonfigurasi aws-nuke agar berjalan pada titik akhir AWS non-default. Ini dapat digunakan untuk pengujian integrasi yang menunjuk ke titik akhir lokal seperti peralatan S3 atau klaster Stratoscale misalnya.
Untuk mengonfigurasi aws-nuke agar menggunakan titik akhir kustom, tambahkan arahan konfigurasi seperti yang ditunjukkan dalam contoh berikut:
regions :
- demo10
# inspired by https://www.terraform.io/docs/providers/aws/guides/custom-service-endpoints.html
endpoints :
- region : demo10
tls_insecure_skip_verify : true
services :
- service : ec2
url : https://10.16.145.115/api/v2/aws/ec2
- service : s3
url : https://10.16.145.115:1060
- service : rds
url : https://10.16.145.115/api/v2/aws/rds
- service : elbv2
url : https://10.16.145.115/api/v2/aws/elbv2
- service : efs
url : https://10.16.145.115/api/v2/aws/efs
- service : emr
url : https://10.16.145.115/api/v2/aws/emr
- service : autoscaling
url : https://10.16.145.115/api/v2/aws/autoscaling
- service : cloudwatch
url : https://10.16.145.115/api/v2/aws/cloudwatch
- service : sns
url : https://10.16.145.115/api/v2/aws/sns
- service : iam
url : https://10.16.145.115/api/v2/aws/iam
- service : acm
url : https://10.16.145.115/api/v2/aws/acm
account-blocklist :
- " account-id-of-custom-region-prod " # production
accounts :
" account-id-of-custom-region-demo10 " :
Ini kemudian dapat digunakan sebagai berikut:
$ aws-nuke -c config/my.yaml --access-key-id <access-key> --secret-access-key <secret-key> --default-region demo10
aws-nuke version v2.11.0.2.gf0ad3ac.dirty - Tue Nov 26 19:15:12 IST 2019 - f0ad3aca55eb66b93b88ce2375f8ad06a7ca856f
Do you really want to nuke the account with the ID account-id-of-custom-region-demo10 and the alias 'account-id-of-custom-region-demo10'?
Do you want to continue? Enter account alias to continue.
> account-id-of-custom-region-demo10
demo10 - EC2Volume - vol-099aa1bb08454fd5bc3499897f175fd8 - [tag:Name: "volume_of_5559b38e-0a56-4078-9a6f-eb446c21cadf"] - would remove
demo10 - EC2Volume - vol-11e9b09c71924354bcb4ee77e547e7db - [tag:Name: "volume_of_e4f8c806-0235-4578-8c08-dce45d4c2952"] - would remove
demo10 - EC2Volume - vol-1a10cb3f3119451997422c435abf4275 - [tag:Name: "volume-dd2e4c4a"] - would remove
demo10 - EC2Volume - vol-1a2e649df1ef449686ef8771a078bb4e - [tag:Name: "web-server-5"] - would remove
demo10 - EC2Volume - vol-481d09bbeb334ec481c12beee6f3012e - [tag:Name: "volume_of_15b606ce-9dcd-4573-b7b1-4329bc236726"] - would remove
demo10 - EC2Volume - vol-48f6bd2bebb945848b029c80b0f2de02 - [tag:Name: "Data volume for 555e9f8a"] - would remove
demo10 - EC2Volume - vol-49f0762d84f0439da805d11b6abc1fee - [tag:Name: "Data volume for acb7f3a5"] - would remove
demo10 - EC2Volume - vol-4c34656f823542b2837ac4eaff64762b - [tag:Name: "wpdb"] - would remove
demo10 - EC2Volume - vol-875f091078134fee8d1fe3b1156a4fce - [tag:Name: "volume-f1a7c95f"] - would remove
demo10 - EC2Volume - vol-8776a0d5bd4e4aefadfa8038425edb20 - [tag:Name: "web-server-6"] - would remove
demo10 - EC2Volume - vol-8ed468bfab0b42c3bc617479b8f33600 - [tag:Name: "web-server-3"] - would remove
demo10 - EC2Volume - vol-94e0370b6ab54f03822095d74b7934b2 - [tag:Name: "web-server-2"] - would remove
demo10 - EC2Volume - vol-9ece34dfa7f64dd583ab903a1273340c - [tag:Name: "volume-4ccafc2e"] - would remove
demo10 - EC2Volume - vol-a3fb3e8800c94452aff2fcec7f06c26b - [tag:Name: "web-server-0"] - would remove
demo10 - EC2Volume - vol-a53954e17cb749a283d030f26bbaf200 - [tag:Name: "volume-5484e330"] - would remove
demo10 - EC2Volume - vol-a7afe64f4d0f4965a6703cc0cfab2ba4 - [tag:Name: "Data volume for f1a7c95f"] - would remove
demo10 - EC2Volume - vol-d0bc3f2c887f4072a9fda0b8915d94c1 - [tag:Name: "physical_volume_of_39c29f53-eac4-4f02-9781-90512cc7c563"] - would remove
demo10 - EC2Volume - vol-d1f066d8dac54ae59d087d7e9947e8a9 - [tag:Name: "Data volume for 4ccafc2e"] - would remove
demo10 - EC2Volume - vol-d9adb3f084cd4d588baa08690349b1f9 - [tag:Name: "volume_of_84854c9b-98aa-4f5b-926a-38b3398c3ad2"] - would remove
demo10 - EC2Volume - vol-db42e471b19f42b7835442545214bc1a - [tag:Name: "lb-tf-lb-20191126090616258000000002"] - would remove
demo10 - EC2Volume - vol-db80932fb47243efa67c9dd34223c647 - [tag:Name: "web-server-5"] - would remove
demo10 - EC2Volume - vol-dbea1d1083654d30a43366807a125aed - [tag:Name: "volume-555e9f8a"] - would remove
--- truncating long output ---
aws-nuke menghapus banyak sumber daya dan mungkin akan ditambahkan lebih banyak lagi pada rilis apa pun. Pada akhirnya, setiap sumber daya harus dihapus. Anda mungkin ingin membatasi sumber daya mana yang akan dihapus. Ada beberapa cara untuk mengonfigurasi ini.
Salah satu caranya adalah filter, yang telah disebutkan. Ini memerlukan untuk mengetahui pengidentifikasi setiap sumber daya. Dimungkinkan juga untuk mencegah seluruh jenis sumber daya (misalnya S3Bucket
) terhapus dengan dua metode.
--target
membatasi nuking pada jenis sumber daya yang ditentukan.--exclude
mencegah nuking jenis sumber daya yang ditentukan.Dimungkinkan juga untuk mengonfigurasi jenis sumber daya di file konfigurasi seperti pada contoh berikut:
---
regions:
- "eu-west-1"
account-blocklist:
- 1234567890
resource-types:
# only nuke these three resources
targets:
- S3Object
- S3Bucket
- IAMRole
accounts:
555133742: {}
---
regions:
- "eu-west-1"
account-blocklist:
- 1234567890
resource-types:
# don't nuke IAM users
excludes:
- IAMUser
accounts:
555133742: {}
Jika target ditentukan di beberapa tempat (misalnya CLI dan spesifik akun), maka jenis sumber daya harus ditentukan di semua tempat. Dengan kata lain setiap konfigurasi membatasi konfigurasi sebelumnya.
Jika pengecualian digunakan, semua jenis sumber dayanya tidak akan dihapus.
Petunjuk: Anda dapat melihat semua jenis sumber daya yang tersedia dengan perintah ini:
aws-nuke resource-types
Fitur ini belum dirilis dan mungkin merupakan bagian dari
v2.18
.
aws-nuke mendukung penghapusan sumber daya melalui AWS Cloud Control API. Saat menjalankan aws-nuke , secara otomatis akan menghapus kumpulan sumber daya yang dikelola secara manual melalui Cloud Control.
Hanya sebagian dari sumber daya yang didukung Cloud Control yang akan dihapus secara otomatis, karena mungkin ada sumber daya yang telah diterapkan dan menambahkan sumber daya tersebut juga akan mengabaikan filter yang ada dalam konfigurasi pengguna karena Cloud Control memiliki skema penamaan lain dan kumpulan properti yang berbeda. Selain itu, ada beberapa sumber daya Cloud Control yang memerlukan penanganan khusus yang belum didukung oleh aws-nuke .
Meskipun subset sumber daya Cloud Control yang didukung secara otomatis terbatas, Anda dapat mengonfigurasi aws-nuke untuk membuatnya mencoba sumber daya tambahan apa pun. Baik melalui tanda baris perintah atau melalui file konfigurasi.
Untuk file konfigurasi Anda harus menambahkan sumber daya ke daftar resource-types.cloud-control
:
resource-types :
cloud-control :
- AWS::EC2::TransitGateway
- AWS::EC2::VPC
Jika Anda ingin menggunakan baris perintah, Anda harus menambahkan tanda --cloud-control
untuk setiap sumber daya yang ingin Anda tambahkan:
aws-nuke
-c nuke-config.yaml
--cloud-control AWS::EC2::TransitGateway
--cloud-control AWS::EC2::VPC
Catatan: Ada beberapa sumber daya yang didukung oleh Cloud Control dan sudah diimplementasikan secara asli oleh aws-nuke . Jika Anda mengonfigurasi untuk menggunakan Cloud Control untuk sumber daya tersebut, kode yang diterapkan secara asli untuk sumber daya ini tidak akan dijalankan. Misalnya dengan --cloud-control AWS::EC2::VPC
tidak akan menggunakan sumber daya EC2VPC
.
Ada beberapa fitur yang cukup berpendirian. Agar fitur tersebut berfungsi bagi semua orang, aws-nuke memiliki tanda untuk mengaktifkan fitur tersebut secara manual. Ini dapat dikonfigurasi pada tingkat root konfigurasi, seperti ini:
---
feature-flags :
disable-deletion-protection :
RDSInstance : true
EC2Instance : true
CloudformationStack : true
force-delete-lightsail-addons : true
Dimungkinkan untuk memfilter hal ini penting agar tidak menghapus pengguna saat ini misalnya atau untuk sumber daya seperti S3 Bucket yang memiliki namespace yang dibagikan secara global dan mungkin sulit untuk dibuat ulang. Saat ini pemfilteran didasarkan pada pengidentifikasi sumber daya. Pengidentifikasi akan dicetak sebagai langkah pertama aws-nuke (misalnya i-01b489457a60298dd
untuk instans EC2).
Catatan: Bahkan dengan filter, Anda tidak boleh menjalankan aws-nuke di akun AWS mana pun, karena Anda tidak boleh kehilangan semua sumber daya. Sangat mudah untuk membuat kesalahan dalam konfigurasi filter. Selain itu, karena aws-nuke terus dikembangkan, selalu ada kemungkinan munculnya bug baru, tidak peduli seberapa hati-hati kami meninjau kode baru.
Filter adalah bagian dari konfigurasi khusus akun dan dikelompokkan berdasarkan jenis sumber daya. Ini adalah contoh konfigurasi yang menghapus semua sumber daya kecuali pengguna admin
dengan izin akses dan dua kunci aksesnya:
---
regions :
- global
- eu-west-1
account-blocklist :
- 1234567890
accounts :
0987654321 :
filters :
IAMUser :
- " admin "
IAMUserPolicyAttachment :
- " admin -> AdministratorAccess "
IAMUserAccessKey :
- " admin -> AKSDAFRETERSDF "
- " admin -> AFGDSGRTEWSFEY "
Sumber daya apa pun yang pengidentifikasi sumber dayanya sama persis dengan salah satu filter dalam daftar akan dilewati. Ini akan ditandai sebagai "difilter berdasarkan konfigurasi" pada proses aws-nuke .
Beberapa sumber daya mendukung pemfilteran melalui properti. Ketika sumber daya mendukung properti ini, properti tersebut akan dicantumkan dalam output seperti dalam contoh ini:
global - IAMUserPolicyAttachment - 'admin -> AdministratorAccess' - [RoleName: "admin", PolicyArn: "arn:aws:iam::aws:policy/AdministratorAccess", PolicyName: "AdministratorAccess"] - would remove
Untuk menggunakan properti, diperlukan untuk menentukan objek dengan properties
dan value
, bukan string biasa.
Tipe ini dapat digunakan untuk menyederhanakan konfigurasi. Misalnya, dimungkinkan untuk melindungi semua kunci akses dari satu pengguna:
IAMUserAccessKey :
- property : UserName
value : " admin "
Ada juga jenis perbandingan tambahan selain pencocokan tepat:
exact
– Pengidentifikasi harus sama persis dengan string yang diberikan. Ini adalah standarnya.contains
– Pengidentifikasi harus berisi string yang diberikan.glob
– Pengidentifikasi harus cocok dengan pola glob yang diberikan. Ini berarti string tersebut mungkin berisi wildcard seperti *
dan ?
. Perhatikan bahwa globbing dirancang untuk jalur file, sehingga wildcard tidak cocok dengan pemisah direktori ( /
). Detail tentang pola glob dapat ditemukan di dokumentasi perpustakaan.regex
– Pengidentifikasi harus cocok dengan ekspresi reguler yang diberikan. Detail tentang sintaksis dapat ditemukan di dokumentasi perpustakaan.dateOlderThan
- Pengidentifikasi diurai sebagai stempel waktu. Setelah offset ditambahkan ke dalamnya (ditentukan dalam bidang value
), stempel waktu yang dihasilkan harus SETELAH waktu saat ini. Detail tentang sintaks offset dapat ditemukan di dokumentasi perpustakaan. Format tanggal yang didukung adalah epoch time, 2006-01-02
, 2006/01/02
, 2006-01-02T15:04:05Z
, 2006-01-02T15:04:05.999999999Z07:00
, dan 2006-01-02T15:04:05Z07:00
. Untuk menggunakan tipe perbandingan non-default, diperlukan untuk menentukan objek dengan type
dan value
, bukan string biasa.
Tipe ini dapat digunakan untuk menyederhanakan konfigurasi. Misalnya, dimungkinkan untuk melindungi semua kunci akses dari satu pengguna dengan menggunakan glob
:
IAMUserAccessKey :
- type : glob
value : " admin -> * "
Dimungkinkan juga untuk menggunakan Properti Filter dan Tipe Filter secara bersamaan. Misalnya untuk melindungi semua Hosted Zone dari TLD tertentu:
Route53HostedZone :
- property : Name
type : glob
value : " *.rebuy.cloud. "
Hasil filter apa pun dapat dibalik dengan menggunakan invert: true
, misalnya:
CloudFormationStack :
- property : Name
value : " foo "
invert : true
Dalam hal ini CloudFormationStack apa pun kecuali yang disebut "foo" akan difilter. Sadarilah bahwa aws-nuke secara internal mengambil setiap sumber daya dan menerapkan setiap filter di dalamnya. Jika filter cocok, maka node akan ditandai sebagai terfilter.
Mungkin saja beberapa filter sama di beberapa akun. Hal ini terutama dapat terjadi jika alat penyediaan seperti Terraform digunakan atau jika sumber daya IAM mengikuti pola yang sama.
Untuk kasus ini aws-nuke mendukung preset filter, yang dapat diterapkan pada banyak akun. Konfigurasinya akan terlihat seperti ini:
---
regions :
- " global "
- " eu-west-1 "
account-blocklist :
- 1234567890
accounts :
555421337 :
presets :
- " common "
555133742 :
presets :
- " common "
- " terraform "
555134237 :
presets :
- " common "
- " terraform "
filters :
EC2KeyPair :
- " notebook "
presets :
terraform :
filters :
S3Bucket :
- type : glob
value : " my-statebucket-* "
DynamoDBTable :
- " terraform-lock "
common :
filters :
IAMRole :
- " OrganizationAccountAccessRole "
brew install aws-nuke
Cara termudah untuk menginstalnya adalah dengan mengunduh rilis terbaru dari GitHub.
Unduh dan ekstrak $ wget -c https://github.com/rebuy-de/aws-nuke/releases/download/v2.25.0/aws-nuke-v2.25.0-linux-amd64.tar.gz -O - | tar -xz -C $HOME/bin
Jalankan $ aws-nuke-v2.25.0-linux-amd64
Untuk mengkompilasi aws-nuke dari sumber, Anda memerlukan lingkungan pengembangan Golang yang berfungsi. Sumber harus dikloning ke $GOPATH/src/github.com/rebuy-de/aws-nuke
.
Anda juga perlu menginstal golint dan GNU Make.
Kemudian Anda hanya perlu menjalankan make build
untuk mengkompilasi biner ke dalam direktori proyek atau make install
go install aws-nuke ke $GOPATH/bin
. Dengan make xc
Anda dapat melakukan kompilasi silang aws-nuke untuk platform lain.
Anda dapat menjalankan aws-nuke dengan Docker dengan menggunakan perintah seperti ini:
$ docker run
--rm -it
-v /full-path/to/nuke-config.yml:/home/aws-nuke/config.yml
-v /home/user/.aws:/home/aws-nuke/.aws
quay.io/rebuy/aws-nuke:v2.25.0
--profile default
--config /home/aws-nuke/config.yml
Untuk membuatnya berfungsi, Anda perlu menyesuaikan jalur untuk konfigurasi AWS dan konfigurasi aws-nuke .
Anda juga perlu menentukan profil AWS yang benar. Daripada memasang direktori AWS, Anda dapat menggunakan tanda --access-key-id
dan --secret-access-key
.
Pastikan Anda menggunakan versi terbaru pada tag gambar. Sebagai alternatif, Anda dapat menggunakan main
untuk versi pengembangan terbaru, namun perlu diketahui bahwa ini lebih mungkin rusak kapan saja.
Untuk menguji unit aws-nuke , beberapa pengujian memerlukan gomock untuk dijalankan. Ini akan dijalankan melalui go generate ./...
, tetapi secara otomatis dijalankan melalui make test
. Untuk menjalankan pengujian unit:
make test
Jangan ragu untuk membuat Masalah GitHub untuk laporan bug atau permintaan fitur apa pun. Silakan gunakan milis kami untuk pertanyaan: [email protected]. Anda juga dapat mencari di arsip milis, apakah seseorang pernah mengalami masalah yang sama: https://groups.google.com/d/forum/aws-nuke
Anda dapat berkontribusi pada aws-nuke dengan melakukan forking pada repositori ini, membuat perubahan, dan membuat Permintaan Tarik terhadap repositori kami. Jika Anda tidak yakin bagaimana menyelesaikan masalah atau memiliki pertanyaan lain tentang kontribusi, silakan buat masalah GitHub.