github.com/mweagle/Sparta@v1.15.0/aws/cloudformation/impl_build.go (about)

     1  // +build !lambdabinary
     2  
     3  package cloudformation
     4  
     5  import (
     6  	"fmt"
     7  
     8  	"github.com/aws/aws-sdk-go/aws/session"
     9  	"github.com/aws/aws-sdk-go/service/iam"
    10  )
    11  
    12  func platformAccountUserName(awsSession *session.Session) (string, error) {
    13  	iamSvc := iam.New(awsSession)
    14  	userInfo, userInfoErr := iamSvc.GetUser(&iam.GetUserInput{})
    15  	if userInfoErr != nil {
    16  		return "", userInfoErr
    17  	}
    18  	userName := ""
    19  	if userInfo.User.UserName != nil {
    20  		userName = *userInfo.User.UserName
    21  	}
    22  	if len(userName) <= 0 && userInfo.User.UserId != nil {
    23  		userName = *userInfo.User.UserId
    24  	}
    25  	if len(userName) <= 0 {
    26  		return "", fmt.Errorf("failed to find valid user identifier from AWS")
    27  	}
    28  	return userName, nil
    29  }