Go以AWS SDK aws-sdk-go-v2
來刪除S3 bucket access point的policy。
範例環境:
- Go 1.19
事前要求
參考「AWS 建立IAM管理使用者及credentials」設定供應用程式存取AWS需要的IAM管理員credentials。
參考「Golang 設定AWS S3 bucket access point policy」設定S3 bucket access point的policy。
刪除S3 access point policy
呼叫s3contorl.Client.DeleteAccessPointPolicy
傳入s3control.DeleteAccessPointPolicyInput
設定access point的policy。
s3control.DeleteAccessPointPolicyInput
填入以下屬性:
AccountId
- 擁有bucket的AWS帳戶號碼。Name
- access point名稱。
main.go
package main
import (
"context"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/s3control"
)
func main() {
ctx := context.TODO()
client := NewS3ControlClient(ctx)
accountId := "423456789012"
apName := "ap-1" // access point name
input := &s3control.DeleteAccessPointPolicyInput{
AccountId: &accountId,
Name: &apName,
}
_, err := client.DeleteAccessPointPolicy(ctx, input)
if err != nil {
panic(err)
}
}
func NewS3ControlClient(ctx context.Context) *s3control.Client {
cfg, err := config.LoadDefaultConfig(
ctx,
config.WithRegion("ap-northeast-1"),
)
if err != nil {
panic(err)
}
return s3control.NewFromConfig(cfg) // Create an Amazon S3 Control client
}
測試
執行Go應用程式後在AWS console檢視access point policy已刪除。
3 則留言:
請問肉豬大有使用過AWS CDK嗎? 是否AWS SDK操作AWS API有什麼優點才不用CDK呢
Hi樓上,AWS CDK我沒用過,查了一下知道其用來做AWS資源的部署用,而AWS SDK則用來整合應用程式和AWS服務,應用場景不太相同。換句話說,若要在應用程式中動態部署AWS資源及使用資源的各種功能,則此時會使用AWS SDK。
看來是我對他們的概念搞混了! 謝謝肉豬大的解答~
張貼留言