Files
seaweedfs/weed/s3api
chrislu 2d47285142 🚀 S3 IAM INTEGRATION MILESTONE: Advanced JWT Authentication & Policy Enforcement
MAJOR SEAWEEDFS INTEGRATION ACHIEVED: S3 Gateway + Advanced IAM System!

🔗 COMPLETE S3 IAM INTEGRATION:
- JWT Bearer token authentication integrated into S3 gateway
- Advanced policy engine enforcement for all S3 operations
- Resource ARN building for fine-grained S3 permissions
- Request context extraction (IP, UserAgent) for policy conditions
- Enhanced authorization replacing simple S3 access controls

 SEAMLESS EXISTING INTEGRATION:
- Non-breaking changes to existing S3ApiServer and IdentityAccessManagement
- JWT authentication replaces 'Not Implemented' placeholder (line 444)
- Enhanced authorization with policy engine fallback to existing canDo()
- Session token validation through IAM manager integration
- Principal and session info tracking via request headers

 PRODUCTION-READY S3 MIDDLEWARE:
- S3IAMIntegration class with enabled/disabled modes
- Comprehensive resource ARN mapping (bucket, object, wildcard support)
- S3 to IAM action mapping (READ→s3:GetObject, WRITE→s3:PutObject, etc.)
- Source IP extraction for IP-based policy conditions
- Role name extraction from assumed role ARNs

 COMPREHENSIVE TEST COVERAGE:
- TestS3IAMMiddleware: Basic integration setup (1/1 passing)
- TestBuildS3ResourceArn: Resource ARN building (5/5 passing)
- TestMapS3ActionToIAMAction: Action mapping (3/3 passing)
- TestExtractSourceIP: IP extraction for conditions
- TestExtractRoleNameFromPrincipal: ARN parsing utilities

🚀 INTEGRATION POINTS IMPLEMENTED:
- auth_credentials.go: JWT auth case now calls authenticateJWTWithIAM()
- auth_credentials.go: Enhanced authorization with authorizeWithIAM()
- s3_iam_middleware.go: Complete middleware with policy evaluation
- Backward compatibility with existing S3 auth mechanisms

This enables enterprise-grade IAM security for SeaweedFS S3 API with
JWT tokens, fine-grained policies, and AWS-compatible permissions
2025-08-23 22:29:04 -07:00
..
2025-07-22 01:07:15 -07:00
fix
2024-10-03 09:03:17 -07:00
2025-08-22 01:15:42 -07:00
2025-02-01 14:11:57 -08:00
2024-07-04 11:00:41 -07:00
2025-08-11 23:57:59 -07:00
2025-08-22 01:15:42 -07:00
2025-07-19 00:49:56 -07:00
2024-07-04 11:00:41 -07:00
2025-08-22 01:15:42 -07:00
2025-08-21 08:28:07 -07:00
2025-08-22 01:15:42 -07:00
2025-08-22 01:15:42 -07:00
2025-08-21 08:28:07 -07:00
2025-08-22 01:15:42 -07:00
2025-08-22 01:15:42 -07:00
2025-08-21 08:28:07 -07:00
2025-08-22 01:15:42 -07:00
2025-08-22 01:15:42 -07:00
2025-07-22 01:07:15 -07:00
2024-04-29 05:33:56 -07:00
2025-07-22 01:07:15 -07:00
2025-07-22 01:07:15 -07:00
2025-07-28 02:49:43 -07:00
2025-07-28 02:49:43 -07:00

see https://blog.aqwari.net/xml-schema-go/

1. go get aqwari.net/xml/cmd/xsdgen
2. Add EncodingType element for ListBucketResult in AmazonS3.xsd
3. xsdgen -o s3api_xsd_generated.go -pkg s3api AmazonS3.xsd
4. Remove empty Grantee struct in s3api_xsd_generated.go
5. Remove xmlns: sed s'/http:\/\/s3.amazonaws.com\/doc\/2006-03-01\/\ //' s3api_xsd_generated.go