AdSense

網頁

2024/5/14

Golang AWS IAM User連接Policy

Go以Google API Client Libraries來將IAM Policy連接到User。


事前要求

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

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


User連接Policy

呼叫iam.Client.AttachUserPolicy,傳入iam.AttachUserPolicyInput參數連接user與policy。

iam.AttachUserPolicyInput欄位如下:

  • UserName - User的名稱。
  • PolicyArn - Policy的ARN

main.go

package main

import (
    "context"

    "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.AttachUserPolicyInput{
        UserName:  aws.String("user-1"),
        PolicyArn: aws.String("arn:aws:iam::[ACCOUNT_ID]:policy/S3Access"),
    }
    _, err := client.AttachUserPolicy(ctx, input)
    if err != nil {
        panic(err)
    }
}

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



測試

執行後在AWS console IAM服務檢視User下的[Permission]頁籤可看到連接的Policy。




沒有留言:

AdSense