forked from kubernetes-sigs/aws-load-balancer-controller
/
iam.go
36 lines (29 loc) · 867 Bytes
/
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
package awsutil
import (
"strings"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/iam"
"github.com/aws/aws-sdk-go/service/iam/iamiface"
)
// IAM is our extension to AWS's IAM.iam
type IAM struct {
Svc iamiface.IAMAPI
}
// NewIAM returns an IAM based off of the provided aws.Config
func NewIAM(awsSession *session.Session) *IAM {
iamClient := IAM{
iam.New(awsSession),
}
return &iamClient
}
// CertExists checks whether the provided ARN exists in AWS.
func (i *IAM) CertExists(arn *string) bool {
arnString := *arn
certificateName := arnString[strings.LastIndex(arnString, "/")+1 : len(arnString)]
params := &iam.GetServerCertificateInput{ServerCertificateName: aws.String(certificateName)}
if _, err := i.Svc.GetServerCertificate(params); err != nil {
return false
}
return true
}