GO-AWS-SDK для доступа к информации об экземпляре на AWS

Я имею в виду следующую функцию в SDK aws-go: https://docs.aws.amazon.com/sdk-for-go/api/aws/client/#New

Я новичок в aws/go SDK для aws (больше похоже на проект выходного дня)

Я хочу создать клиент на моем локальном компьютере, чтобы он мог войти в мою учетную запись AWS и предоставить мне список всех экземпляров, работающих в учетной записи aws.

Сейчас я просто пытаюсь войти в аккаунт

исходный код :

package main

import (
    "fmt"
    "github.com/aws/aws-sdk-go/aws"
    "github.com/aws/aws-sdk-go/aws/client"
    "github.com/aws/aws-sdk-go/aws/client/metadata"
    "github.com/aws/aws-sdk-go/aws/request"
)


func main() {

    param1:=aws.Config{Region: aws.String("us-east-1") }
    param2:=metadata.ClientInfo{}
    param3:=request.Handlers{}
    awsClient :=client.New(param1,param2,param3)
    fmt.Print(awsClient)
    fmt.Println(awsClient.ClientInfo)

}

выход:

&{{3 0s 0s 0s 0s} {        } {<nil> <nil> <nil> <nil> <nil> 0xc0000133a0 <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil> <nil>  } {{[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>} {[] <nil>}}}{        }

у меня правильно настроен файл .aws/credentials. Я также могу войти через cli и просмотреть все свои дополнительные учетные записи.

Опять же, я просто пытаюсь войти в свою учетную запись на aws.

Пожалуйста, помогите мне в следующем: 1) Я использую правильный API/документацию?

2) Из этого вывода я понимаю, что клиент не может общаться с aws. Я прав ?

3) пожалуйста, помогите мне решить эту проблему

Заранее спасибо.


person amolgautam    schedule 27.05.2020    source источник


Ответы (1)


  1. Проверьте, есть ли у настройки пользователя IAM в вашем файле учетных данных доступ к списку информации EC2.

  2. Протестируйте этот код, который просто проверяет успех или неудачу

package main

import (
   "github.com/aws/aws-sdk-go/aws/session"
   "github.com/aws/aws-sdk-go/service/ec2"

   "fmt"
)

func main() {
   // Load session from shared config
   sess := session.Must(session.NewSessionWithOptions(session.Options{
       SharedConfigState: session.SharedConfigEnable,
   }))

   // Create new EC2 client
   ec2Svc := ec2.New(sess)

   // Call to get detailed information on each instance
   result, err := ec2Svc.DescribeInstances(nil)
   if err != nil {
       fmt.Println("Error", err)
   } else {
       fmt.Println("Success", result)
   }
}

руководство разработчика — хороший также место для начала, если вы новичок в AWS/Go.

person Geeshan    schedule 27.05.2020
comment
Спасибо за отзыв. У меня есть учетные данные корневого уровня. Мне нужно получить доступ ко всем учетным записям IAM подуровня, а затем взять на себя роли. после этого я могу перечислить все ресурсы, которые есть у каждой отдельной учетной записи. это намного сложнее, чем я думал. Спасибо за ответ. - person amolgautam; 28.05.2020