AWS(Amazon Web Services)는 클라우드 컴퓨팅 업계의 선두주자로서 편리하고 강력한 클라우드 컴퓨팅 서비스를 제공하여 기업이 자체 IT 인프라를 쉽게 구축 및 관리하고 더 나은 확장성과 유연성, 저렴한 비용을 얻을 수 있도록 지원합니다. IAM(Identity and Access Management)은 AWS의 중요한 서비스 중 하나입니다. 사용자(사람, 애플리케이션, 서비스 등 포함)의 ID 및 액세스 권한을 관리하고 AWS 리소스의 보안 및 기밀성을 보장하는 역할을 합니다. 이번 글에서는 AWS IAM을 Go 언어로 활용하는 방법을 소개하고, 자세한 구현 방법과 코드 예시를 제공하겠습니다.
1. AWS에서 IAM 사용자 및 역할 생성
먼저 AWS에서 IAM 사용자 및 역할을 생성해야 합니다. IAM 사용자는 AWS 리소스의 ID이고 역할은 이러한 리소스에 대한 액세스 권한입니다. AWS 콘솔이나 AWS CLI를 사용하여 이러한 자격 증명과 권한을 생성하고 관리할 수 있습니다. AWS 콘솔을 사용하여 IAM 사용자 및 역할을 생성하는 단계는 다음과 같습니다.
2. Go 언어로 AWS IAM 구현
IAM 사용자 및 역할을 생성한 후 Go 언어로 AWS IAM 구현을 시작할 수 있습니다. 다음은 Go용 AWS SDK(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, }))
보안 자격 증명 및 지역 정보를 포함하여 AWS CLI/SDK의 공유 구성 파일을 읽습니다.
svc := iam.New(sess)
이렇게 하면 IAM 서비스용 클라이언트가 생성됩니다.
_, err := svc.CreateUser(&iam.CreateUserInput{ UserName: aws.String("test-user"), }) if err != nil { panic(err) }
여기에서는 "test-user"라는 새 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) }
여기에서는 IAM 사용자 "test-user"를 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) }
여기에서는 "test-role"이라는 새로운 IAM 역할을 생성하여 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) }
여기에서는 IAM 역할 "test-role"을 AmazonS3FullAccess 권한 정책과 연결합니다.
resp, err := svc.ListUsers(&iam.ListUsersInput{}) if err != nil { panic(err) } for _, user := range resp.Users { fmt.Println("IAM user:", *user.UserName) }
여기에는 모든 IAM 사용자가 나열됩니다.
resp, err = svc.ListRoles(&iam.ListRolesInput{}) if err != nil { panic(err) } for _, role := range resp.Roles { fmt.Println("IAM role:", *role.RoleName) }
여기에는 모든 IAM 역할이 나열되어 있습니다.
3. 결론
이 기사에서는 AWS에서 IAM 사용자 및 역할을 생성하는 방법을 소개하고 aws-sdk-go를 사용하여 Go 언어로 AWS IAM을 구현하는 자세한 단계와 코드 예제를 제공했습니다. IAM을 통해 안정적인 인증 및 액세스 제어를 구현하여 AWS 리소스의 보안과 기밀성을 보장할 수 있습니다. 동시에 aws-sdk-go의 기능을 사용하면 AWS IAM을 더 쉽게 구현하고 Go 언어로 더 나은 애플리케이션을 구축할 수 있습니다.
위 내용은 Go에서 AWS IAM 사용: 전체 안내서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!