Strategi yang betul untuk mendapatkan rahsia pada aplikasi go tempatan

WBOY
Lepaskan: 2024-02-08 22:42:08
ke hadapan
1098 orang telah melayarinya

在本地 go 应用程序上获取机密的正确策略

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!

Kandungan soalan

Memainkan projek kecil pada aws:

  • aplikasi golang
  • rds/mysql pangkalan data
  • Pengurus Rahsia
  • pintu masuk api dan lambda

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)
}
Salin selepas log masuk

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
Salin selepas log masuk

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>"
        }
    ]
}
Salin selepas log masuk

Penyelesaian

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,
}))
Salin selepas log masuk

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"
            ]
        }
}
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!