AWS (アマゾン ウェブ サービス) は、クラウド コンピューティング業界のリーダーとして、便利で強力なクラウド コンピューティング サービスを提供し、企業が独自の IT インフラストラクチャを簡単に構築および管理し、優れた拡張性、柔軟性、低コストを実現できるようにします。 IAM (Identity and Access Management) は AWS の重要なサービスの 1 つであり、ユーザー (人、アプリケーション、サービスなどを含む) の ID とアクセス権を管理し、AWS リソースのセキュリティと機密性を確保する責任があります。この記事では、Go 言語で AWS IAM を使用する方法を紹介し、詳細な実装方法とコード例を示します。
1. AWS で IAM ユーザーとロールを作成する
まず、AWS で IAM ユーザーとロールを作成する必要があります。 IAM ユーザーは AWS リソースの ID であり、ロールはこれらのリソースへのアクセス許可です。これらの ID とアクセス許可は、AWS コンソールまたは AWS CLI を使用して作成および管理できます。 AWS コンソールを使用して IAM ユーザーとロールを作成する手順は次のとおりです。
2. Go 言語で AWS IAM を実装する
IAM ユーザーとロールを作成したら、Go 言語で AWS IAM の実装を開始できます。以下は、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, }))
これにより、セキュリティ認証情報を含む 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 中国語 Web サイトの他の関連記事を参照してください。