在Golang中使用AWS SDK V2的IAM服务,可以使用ListUsers函数列出所有用户的详细信息,包括用户的ARN和创建日期等。要检查用户是否为根用户,可以查看其ARN是否包含“root”标识符。以下是示例代码:
package main
import (
"context"
"fmt"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/iam"
)
func main() {
cfg, err := config.LoadDefaultConfig(context.TODO())
if err != nil {
panic("unable to load SDK config, " + err.Error())
}
svc := iam.NewFromConfig(cfg)
params := &iam.ListUsersInput{}
resp, err := svc.ListUsers(context.TODO(), params)
if err != nil {
panic(err)
}
for _, user := range resp.Users {
fmt.Printf("User ARN: %s\n", aws.ToString(user.Arn))
if aws.ToString(user.Arn) == "arn:aws:iam::123456789012:user/root" {
fmt.Println("This is the root user.")
} else {
fmt.Println("This is not the root user.")
}
}
}
注意:上面的代码假定您已在环境中设置了适当的AWS认证凭据。如果未设置,则可以使用以下方法进行设置:
cfg, err := config.LoadDefaultConfig(context.TODO(),
config.WithRegion("us-west-2"),
config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider("ACCESS_KEY_ID", "SECRET_ACCESS_KEY", "SESSION_TOKEN")),
)