Rumah > Artikel > pembangunan bahagian belakang > Strategi yang betul untuk mendapatkan rahsia pada aplikasi go tempatan
editor php Banana membawakan anda artikel tentang strategi yang betul untuk mendapatkan rahsia dalam aplikasi Go tempatan. Dalam pembangunan aplikasi moden, melindungi keselamatan maklumat sensitif adalah penting. Artikel ini akan berkongsi beberapa strategi berkesan untuk membantu pembangun mendapatkan dan menggunakan maklumat sulit dengan betul dalam aplikasi Go asli untuk memastikan kerahsiaan dan integriti data. Sama ada kata laluan pangkalan data, kunci API atau maklumat sensitif lain, pengendalian dan storan yang betul adalah kunci untuk memastikan aplikasi anda selamat. Mari selami cara mengendalikan maklumat sulit dengan selamat!
Memainkan projek kecil pada aws:
Saya menjalankan apl go secara setempat untuk mengesahkan interaksi dengan pangkalan data, tetapi saya tidak dapat membuatnya berfungsi dengan pengurus rahsia.
Gunakan kod contoh ini:
func getcreds() { config, err := config.loaddefaultconfig(context.todo(), config.withregion(region)) if err != nil { log.fatal(err) } svc := secretsmanager.newfromconfig(config) input := &secretsmanager.getsecretvalueinput{ secretid: aws.string(secretname), versionstage: aws.string("awscurrent"), } result, err := svc.getsecretvalue(context.todo(), input) if err != nil { log.fatal(err.error()) } var secretstring string = *result.secretstring log.printf("pwd: %s", secretstring) }
Saya faham
operation error secrets manager: getsecretvalue, exceeded maximum number of attempts, 3, failed to sign request: failed to retrieve credentials: failed to refresh cached credentials, no ec2 imds role found, operation error ec2imds
Jika saya faham dengan betul, saya perlu menambah kebenaran pada pengguna/dasar. Tetapi di mana untuk menambah ini? Dalam konsol iam? Atau konsol pengurus rahsia?
Apa yang sepatutnya?
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Principal": {"AWS": "<what to add here>"}, "Resource": "<and here>" } ] }
aplikasi go tidak dapat mencari kelayakan untuk menggunakan aws api.
Mengikut (Konfigurasi Bukti Kelayakan) anda boleh menggunakan kod ini untuk menggunakan secara automatik ~/.aws/config
sebagai bukti kelayakan tempatan
sess := session.must(session.newsessionwithoptions(session.options{ sharedconfigstate: session.sharedconfigenable, }))
Jika anda menyediakan konfigurasi tersuai, anda mesti memberikan bukti kelayakan. Terdapat kaedah lain, pilih yang sesuai untuk anda. aws mencadangkan kaedah di atas.
Ini termasuk berjalan dengan pengguna anda. Untuk pelaksanaan aws anda perlu memberikan fungsi lambda akses kepada kunci:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", ], "Resource": [ "arn:aws:secretsmanager:us-west-2:111122223333:secret:aes128-1a2b3c" ] } }
Strategi di atas mesti digunakan pada peranan iam yang digunakan untuk melaksanakan lambda. Anda boleh mencari konsol aws -> lambda anda ->
Atas ialah kandungan terperinci Strategi yang betul untuk mendapatkan rahsia pada aplikasi go tempatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!