Go以Google API Client Libraries來分離IAM User的Policy。
事前要求
參考「Golang AWS IAM User連接Policy」連接IAM User與Policy。
分離Policy
呼叫iam.Client.DetachUserPolicy
,傳入iam.DetachUserPolicyInput
參數分離user與policy。
iam.DetachUserPolicyInput
欄位如下:
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.DetachUserPolicyInput{
UserName: aws.String("user-1"),
PolicyArn: aws.String("arn:aws:iam::[ACCOUNT_ID]:policy/S3Access"),
}
_, err := client.DetachUserPolicy(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)
}
測試
執行後在AWS console IAM服務檢視User下的[Permission]頁籤可看到原本連接的Policy已消失。
沒有留言:
張貼留言