aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api/s3api_server.go
diff options
context:
space:
mode:
authorNial <48334675+nmcc1212@users.noreply.github.com>2025-10-29 00:30:12 +0000
committerGitHub <noreply@github.com>2025-10-28 17:30:12 -0700
commit20e0d91037de0851c090448ed2c8f0dd2e8bc97e (patch)
tree64eec9f1f8466c1ad6e7c839f85b8a1f511e4755 /weed/s3api/s3api_server.go
parentb8bef0328bae8b56914f378e57e423a6340668f5 (diff)
downloadseaweedfs-20e0d91037de0851c090448ed2c8f0dd2e8bc97e.tar.xz
seaweedfs-20e0d91037de0851c090448ed2c8f0dd2e8bc97e.zip
IAM: add support for advanced IAM config file to server command (#7317)
* IAM: add support for advanced IAM config file to server command * Add support for advanced IAM config file in S3 options * Fix S3 IAM config handling to simplify checks for configuration presence * simplify * simplify again * copy the value * const --------- Co-authored-by: chrislu <chris.lu@gmail.com> Co-authored-by: Chris Lu <chrislusf@users.noreply.github.com>
Diffstat (limited to 'weed/s3api/s3api_server.go')
-rw-r--r--weed/s3api/s3api_server.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/weed/s3api/s3api_server.go b/weed/s3api/s3api_server.go
index 5af274970..e21886c57 100644
--- a/weed/s3api/s3api_server.go
+++ b/weed/s3api/s3api_server.go
@@ -473,12 +473,23 @@ func loadIAMManagerFromConfig(configPath string, filerAddressProvider func() str
return nil, fmt.Errorf("failed to parse config: %w", err)
}
+ // Ensure a valid policy engine config exists
+ if configRoot.Policy == nil {
+ // Provide a secure default if not specified in the config file
+ // Default to Deny with in-memory store so that JSON-defined policies work without filer
+ glog.V(0).Infof("No policy engine config provided; using defaults (DefaultEffect=%s, StoreType=%s)", sts.EffectDeny, sts.StoreTypeMemory)
+ configRoot.Policy = &policy.PolicyEngineConfig{
+ DefaultEffect: sts.EffectDeny,
+ StoreType: sts.StoreTypeMemory,
+ }
+ }
+
// Create IAM configuration
iamConfig := &integration.IAMConfig{
STS: configRoot.STS,
Policy: configRoot.Policy,
Roles: &integration.RoleStoreConfig{
- StoreType: "memory", // Use memory store for JSON config-based setup
+ StoreType: sts.StoreTypeMemory, // Use memory store for JSON config-based setup
},
}