问题描述:
此问题涉及AWS Go V2 SDK的角色链接功能,用于从另一个AWS账户中的临时凭证中连接AWS资源。以下是一个例子:
package main
import (
"context"
"fmt"
"time"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/credentials/stscreds"
"github.com/aws/aws-sdk-go-v2/service/s3"
)
func main() {
cfg, err := config.LoadDefaultConfig()
if err != nil {
panic("configuration error, " + err.Error())
}
// get the access key and secret key from the different account
s, err := session.NewSession(&aws.Config{
Region: aws.String("us-west-2"),
Credentials: aws.NewCredentials(&stscreds.AssumeRoleProvider{
RoleARN: "arn:aws:iam::11111111111=role/development",
RoleSessionName: fmt.Sprintf("external-connector-%v", time.Now().UnixNano()),
Duration: time.Hour,
}),
})
svc := s3.NewFromConfig(cfg)
result, err := svc.ListBuckets(context.Background(), &s3.ListBucketsInput{})
if err != nil {
panic("failed to list buckets, " + err.Error())
}
for _, bucket := range result.Buckets {
fmt.Printf("* %s created on %s\n",
aws.ToString(bucket.Name), bucket.CreationDate.Format("2006-01-02"))
}
}
这个例子连接了一个不同的AWS账户中的S3存储桶。
〔
此问题涉及通过另一个AWS账户的临时凭证链接AWS资源。以下是一个完整的代码示例:
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/credentials/stscreds"
"github.com/aws
此问题涉及通过另一个AWS账户的临时凭证链接AWS资源。以下是一个完整的代码示例:
```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/credentials/stscreds"
"github.com/aws