Menggunakan AWS IAM dalam Go: Panduan Lengkap

WBOY
Lepaskan: 2023-06-17 15:39:11
asal
1586 orang telah melayarinya

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!

Label berkaitan:
sumber:php.cn
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!