/
iam.go
89 lines (68 loc) · 2.6 KB
/
iam.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package iam
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/service/iam"
)
func CreateAccessKey(cfg aws.Config, userName string) (*iam.CreateAccessKeyOutput, error) {
client := iam.NewFromConfig(cfg)
input := &iam.CreateAccessKeyInput{
UserName: &userName,
}
return client.CreateAccessKey(context.TODO(), input)
}
func ListAccessKeys(cfg aws.Config, userName string) (*iam.ListAccessKeysOutput, error) {
client := iam.NewFromConfig(cfg)
var max int32 = 10
input := &iam.ListAccessKeysInput{
MaxItems: &max,
UserName: &userName,
}
return client.ListAccessKeys(context.TODO(), input)
}
func DeleteAccessKey(cfg aws.Config, userName, keyId string) (*iam.DeleteAccessKeyOutput, error) {
client := iam.NewFromConfig(cfg)
input := &iam.DeleteAccessKeyInput{
AccessKeyId: &keyId,
UserName: &userName,
}
return client.DeleteAccessKey(context.TODO(), input)
}
func AddUserToGroup(cfg aws.Config, userName, groupName string) (*iam.AddUserToGroupOutput, error) {
client := iam.NewFromConfig(cfg)
input := &iam.AddUserToGroupInput{
GroupName: &groupName,
UserName: &userName,
}
return client.AddUserToGroup(context.TODO(), input)
}
func ListUsers(cfg aws.Config, input *iam.ListUsersInput) (*iam.ListUsersOutput, error) {
client := iam.NewFromConfig(cfg)
return client.ListUsers(context.TODO(), input)
}
// General account
func GetAccountSummary(cfg aws.Config) (*iam.GetAccountSummaryOutput, error) {
client := iam.NewFromConfig(cfg)
input := &iam.GetAccountSummaryInput{}
return client.GetAccountSummary(context.TODO(), input)
}
func ListAttachedGroupPolicies(cfg aws.Config, input *iam.ListAttachedGroupPoliciesInput) (*iam.ListAttachedGroupPoliciesOutput, error) {
client := iam.NewFromConfig(cfg)
return client.ListAttachedGroupPolicies(context.TODO(), input)
}
func ListAttachedRolePolicies(cfg aws.Config, input *iam.ListAttachedRolePoliciesInput) (*iam.ListAttachedRolePoliciesOutput, error) {
client := iam.NewFromConfig(cfg)
return client.ListAttachedRolePolicies(context.TODO(), input)
}
func CreateUser(cfg aws.Config, input *iam.CreateUserInput) (*iam.CreateUserOutput, error) {
client := iam.NewFromConfig(cfg)
return client.CreateUser(context.TODO(), input)
}
func DeleteUser(cfg aws.Config, input *iam.DeleteUserInput) (*iam.DeleteUserOutput, error) {
client := iam.NewFromConfig(cfg)
return client.DeleteUser(context.TODO(), input)
}
func RemoveUserFromGroup(cfg aws.Config, input *iam.RemoveUserFromGroupInput) (*iam.RemoveUserFromGroupOutput, error) {
client := iam.NewFromConfig(cfg)
return client.RemoveUserFromGroup(context.TODO(), input)
}