Rumah pembangunan bahagian belakang Golang Menggunakan AWS IAM dalam Go: Panduan Lengkap

Menggunakan AWS IAM dalam Go: Panduan Lengkap

Jun 17, 2023 pm 03:39 PM
pergi bahasa panduan aws iam

AWS (Amazon Web Services), sebagai peneraju dalam industri pengkomputeran awan, menyediakan perkhidmatan pengkomputeran awan yang mudah dan berkuasa, membolehkan perusahaan membina dan mengurus infrastruktur IT mereka sendiri dengan mudah dan memperoleh kebolehskalaan, Fleksibiliti dan kos rendah yang lebih baik. IAM (Pengurusan Identiti dan Akses) ialah salah satu perkhidmatan penting dalam AWS Ia bertanggungjawab mengurus identiti dan hak akses pengguna (termasuk orang, aplikasi, perkhidmatan, dll.) dan memastikan keselamatan dan kerahsiaan sumber AWS. Dalam artikel ini, kami akan memperkenalkan cara menggunakan AWS IAM dalam bahasa Go dan menyediakan kaedah pelaksanaan terperinci serta contoh kod.

1. Cipta pengguna dan peranan IAM dalam AWS

Pertama, kita perlu mencipta pengguna dan peranan IAM dalam AWS. Pengguna IAM ialah identiti sumber AWS, dan peranan ialah kebenaran akses kepada sumber ini. Kami boleh mencipta dan mengurus identiti dan kebenaran ini menggunakan konsol AWS atau AWS CLI. Berikut ialah langkah untuk mencipta pengguna dan peranan IAM menggunakan konsol AWS:

  1. Log masuk ke konsol AWS dan pergi ke konsol IAM.
  2. Klik "Pengguna" dalam bar navigasi kiri, kemudian klik "Tambah Pengguna". Masukkan nama pengguna dan jenis akses anda (Programmatic Access atau AWS Management Console Access) dan klik Seterusnya.
  3. Berikan kebenaran kepada pengguna baharu. Kami boleh menambah pengguna secara langsung pada kumpulan pengguna sedia ada (iaitu set pengguna yang dikaitkan dengan kebenaran yang sama), atau membuat dasar kebenaran tersuai untuk pengguna baharu. Di sini, kami mencipta dasar kebenaran yang dipanggil "IAMUserPolicy" untuk pengguna baharu, termasuk akses kepada AmazonS3FullAccess. Selepas menambah dasar kebenaran, klik "Seterusnya".
  4. Sahkan semua tetapan. Dalam halaman ini, kami boleh melihat kunci akses dan bukti kelayakan keselamatan pengguna IAM yang kami buat, serta kebenaran akses yang baru kami buat untuk pengguna tersebut. Selepas mengesahkan semua tetapan, klik "Selesai".
  5. Ulang langkah 2-4 di atas untuk mencipta peranan IAM bernama "IAMRole" dan kaitkan dasar kebenaran AmazonS3FullAccess dengan peranan tersebut.

2. Laksanakan AWS IAM dalam bahasa Go

Selepas mencipta pengguna dan peranan IAM, kami boleh mula melaksanakan AWS IAM dalam bahasa Go. Berikut ialah langkah pelaksanaan menggunakan AWS SDK for Go (aws-sdk-go):

  1. Pasang aws-sdk-go:
go get -u github.com/aws/aws-sdk-go
Salin selepas log masuk
  1. dalam kod Go import aws-sdk-go:
import (
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/iam"
)
Salin selepas log masuk
  1. Konfigurasikan sesi AWS:
sess := session.Must(session.NewSessionWithOptions(session.Options{
    SharedConfigState: session.SharedConfigEnable,
}))
Salin selepas log masuk

Ini akan membaca fail konfigurasi kongsi AWS CLI/SDK, termasuk Bukti kelayakan keselamatan dan maklumat wilayah.

  1. Buat pelanggan untuk perkhidmatan IAM:
svc := iam.New(sess)
Salin selepas log masuk

Ini mewujudkan pelanggan untuk perkhidmatan IAM.

  1. Buat pengguna IAM:
_, err := svc.CreateUser(&iam.CreateUserInput{
    UserName: aws.String("test-user"),
})
if err != nil {
    panic(err)
}
Salin selepas log masuk

Di sini kami telah mencipta pengguna IAM baharu bernama "pengguna ujian".

  1. Berikan kebenaran kepada pengguna IAM:
_, err = svc.AttachUserPolicy(&iam.AttachUserPolicyInput{
    PolicyArn: aws.String("arn:aws:iam::aws:policy/AmazonS3FullAccess"),
    UserName:  aws.String("test-user"),
})
if err != nil {
    panic(err)
}
Salin selepas log masuk

Di sini kami mengaitkan "pengguna ujian" pengguna IAM dengan dasar kebenaran AmazonS3FullAccess.

  1. Cipta peranan IAM:
_, err = svc.CreateRole(&iam.CreateRoleInput{
    AssumeRolePolicyDocument: aws.String(`{
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
          "Service": "ec2.amazonaws.com"
        },
        "Action": "sts:AssumeRole"
      }
    ]
}`),
    RoleName: aws.String("test-role"),
})
if err != nil {
    panic(err)
}
Salin selepas log masuk

Di sini kami telah mencipta peranan IAM baharu yang dipanggil "peranan ujian" dan mengaitkannya dengan Amazon EC2.

  1. Berikan kebenaran kepada peranan IAM:
_, err = svc.AttachRolePolicy(&iam.AttachRolePolicyInput{
    PolicyArn: aws.String("arn:aws:iam::aws:policy/AmazonS3FullAccess"),
    RoleName:  aws.String("test-role"),
})
if err != nil {
    panic(err)
}
Salin selepas log masuk

Di sini kami mengaitkan peranan IAM "peranan ujian" dengan dasar kebenaran AmazonS3FullAccess.

  1. Senaraikan semua pengguna IAM:
resp, err := svc.ListUsers(&iam.ListUsersInput{})
if err != nil {
    panic(err)
}
for _, user := range resp.Users {
    fmt.Println("IAM user:", *user.UserName)
}
Salin selepas log masuk

Di sini kami menyenaraikan semua pengguna IAM.

  1. Senaraikan semua peranan IAM:
resp, err = svc.ListRoles(&iam.ListRolesInput{})
if err != nil {
    panic(err)
}
for _, role := range resp.Roles {
    fmt.Println("IAM role:", *role.RoleName)
}
Salin selepas log masuk

Di sini kami telah menyenaraikan semua peranan IAM.

3. Kesimpulan

Dalam artikel ini, kami memperkenalkan cara mencipta pengguna dan peranan IAM dalam AWS, dan memberikan butiran tentang menggunakan aws-sdk-go untuk melaksanakan AWS IAM dalam Langkah bahasa Go dan contoh kod. Melalui IAM, kami boleh melaksanakan pengesahan yang boleh dipercayai dan kawalan akses untuk memastikan keselamatan dan kerahsiaan sumber AWS. Pada masa yang sama, menggunakan kuasa aws-sdk-go, kami boleh melaksanakan AWS IAM dengan lebih mudah dan membina aplikasi yang lebih baik dalam bahasa Go.

Atas ialah kandungan terperinci Menggunakan AWS IAM dalam Go: Panduan Lengkap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Apr 02, 2025 pm 02:06 PM

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Perpustakaan mana yang dibangunkan oleh syarikat besar atau disediakan oleh projek sumber terbuka yang terkenal? Perpustakaan mana yang dibangunkan oleh syarikat besar atau disediakan oleh projek sumber terbuka yang terkenal? Apr 02, 2025 pm 04:12 PM

Perpustakaan mana yang dibangunkan oleh syarikat besar atau projek sumber terbuka yang terkenal? Semasa pengaturcaraan di GO, pemaju sering menghadapi beberapa keperluan biasa, ...

Apakah masalah dengan thread giliran di crawler colly go? Apakah masalah dengan thread giliran di crawler colly go? Apr 02, 2025 pm 02:09 PM

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Di Go, mengapa rentetan percetakan dengan fungsi println dan rentetan () mempunyai kesan yang berbeza? Di Go, mengapa rentetan percetakan dengan fungsi println dan rentetan () mempunyai kesan yang berbeza? Apr 02, 2025 pm 02:03 PM

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Kenapa perlu lulus petunjuk apabila menggunakan perpustakaan Go dan Viper? Kenapa perlu lulus petunjuk apabila menggunakan perpustakaan Go dan Viper? Apr 02, 2025 pm 04:00 PM

GO Pointer Syntax dan menangani masalah dalam penggunaan perpustakaan Viper semasa pengaturcaraan dalam bahasa Go, adalah penting untuk memahami sintaks dan penggunaan petunjuk, terutama dalam ...

Apakah perbezaan antara struktur definisi kata kunci `var` dan` type` dalam bahasa Go? Apakah perbezaan antara struktur definisi kata kunci `var` dan` type` dalam bahasa Go? Apr 02, 2025 pm 12:57 PM

Dua cara untuk menentukan struktur dalam bahasa Go: perbezaan antara VAR dan jenis kata kunci. Apabila menentukan struktur, pergi bahasa sering melihat dua cara menulis yang berbeza: pertama ...

Kenapa semua nilai menjadi elemen terakhir apabila menggunakan bahasa dalam bahasa Go untuk melintasi kepingan dan menyimpan peta? Kenapa semua nilai menjadi elemen terakhir apabila menggunakan bahasa dalam bahasa Go untuk melintasi kepingan dan menyimpan peta? Apr 02, 2025 pm 04:09 PM

Mengapa lelaran peta di GO menyebabkan semua nilai menjadi elemen terakhir? Dalam bahasa Go, ketika berhadapan dengan beberapa soalan wawancara, anda sering menemui peta ...

GO SLISE SLICE: Mengapa ia tidak melaporkan kesilapan apabila indeks kepingan tunggal 1 memintas? GO SLISE SLICE: Mengapa ia tidak melaporkan kesilapan apabila indeks kepingan tunggal 1 memintas? Apr 02, 2025 pm 02:24 PM

GO LANGUAGE SLISE INDEX: Mengapa kepingan tunggal elemen memintas dari Indeks 1 tanpa ralat? Dalam bahasa Go, kepingan adalah struktur data yang fleksibel yang boleh merujuk kepada bahagian bawah ...

See all articles