網頁

2024/5/14

Golang 建立AWS IAM User的Access Key

Go以Google API Client Libraries來建立IAM User的Access Key(存取金鑰)。


事前要求

參考「Golang 建立AWS IAM User」建立IAM User。


建立Access Key

呼叫iam.Client.CreateAccessKey,傳入iam.CreateAccessKeyInput參數建立user的access key。

iam.CreateAccessKeyInput欄位如下:

  • UserName - 填入User的名稱。

main.go

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() {
    ctx := context.TODO()
    client := NewIamClient(ctx)

    input := &iam.CreateAccessKeyInput{
        UserName: aws.String("user-1"),
    }
    output, err := client.CreateAccessKey(ctx, input)
    if err != nil {
        panic(err)
    }

    accessKey := output.AccessKey
    fmt.Println(*accessKey.AccessKeyId)     // AKIAW7AFVMU2SPAZS64A
    fmt.Println(*accessKey.SecretAccessKey) // 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

}

func NewIamClient(ctx context.Context) *iam.Client {
    cfg, err := config.LoadDefaultConfig(
        ctx,
        config.WithRegion("ap-northeast-1"),
    )
    if err != nil {
        panic(err)
    }

    return iam.NewFromConfig(cfg)
}

github



測試

執行印出以下:

AKIAW7AFVMU2SPAZS64A
jGT5ospeQEf9BXAWwcThSv6OQuR8b0ZP/NfaxK1R

在AWS console的IAM功能該User下的[Security credentials]頁籤下,在[Access Keys]下可看到建立的access key。




沒有留言:

張貼留言