Rumah > Artikel > pembangunan bahagian belakang > Menggunakan AWS IAM dalam Go: Panduan Lengkap
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:
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):
go get -u github.com/aws/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" )
sess := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable, }))
Ini akan membaca fail konfigurasi kongsi AWS CLI/SDK, termasuk Bukti kelayakan keselamatan dan maklumat wilayah.
svc := iam.New(sess)
Ini mewujudkan pelanggan untuk perkhidmatan IAM.
_, err := svc.CreateUser(&iam.CreateUserInput{ UserName: aws.String("test-user"), }) if err != nil { panic(err) }
Di sini kami telah mencipta pengguna IAM baharu bernama "pengguna ujian".
_, err = svc.AttachUserPolicy(&iam.AttachUserPolicyInput{ PolicyArn: aws.String("arn:aws:iam::aws:policy/AmazonS3FullAccess"), UserName: aws.String("test-user"), }) if err != nil { panic(err) }
Di sini kami mengaitkan "pengguna ujian" pengguna IAM dengan dasar kebenaran AmazonS3FullAccess.
_, 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) }
Di sini kami telah mencipta peranan IAM baharu yang dipanggil "peranan ujian" dan mengaitkannya dengan Amazon EC2.
_, err = svc.AttachRolePolicy(&iam.AttachRolePolicyInput{ PolicyArn: aws.String("arn:aws:iam::aws:policy/AmazonS3FullAccess"), RoleName: aws.String("test-role"), }) if err != nil { panic(err) }
Di sini kami mengaitkan peranan IAM "peranan ujian" dengan dasar kebenaran AmazonS3FullAccess.
resp, err := svc.ListUsers(&iam.ListUsersInput{}) if err != nil { panic(err) } for _, user := range resp.Users { fmt.Println("IAM user:", *user.UserName) }
Di sini kami menyenaraikan semua pengguna IAM.
resp, err = svc.ListRoles(&iam.ListRolesInput{}) if err != nil { panic(err) } for _, role := range resp.Roles { fmt.Println("IAM role:", *role.RoleName) }
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!