You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							173 lines
						
					
					
						
							4.3 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							173 lines
						
					
					
						
							4.3 KiB
						
					
					
				| { | |
|   "sts": { | |
|     "tokenDuration": 3600000000000, | |
|     "maxSessionLength": 43200000000000, | |
|     "issuer": "seaweedfs-sts", | |
|     "signingKey": "dGVzdC1zaWduaW5nLWtleS0zMi1jaGFyYWN0ZXJzLWxvbmc=", | |
|     "providers": [ | |
|       { | |
|         "name": "keycloak-oidc", | |
|         "type": "oidc", | |
|         "enabled": true, | |
|         "config": { | |
|           "issuer": "http://keycloak:8080/realms/seaweedfs-test", | |
|           "clientId": "seaweedfs-s3", | |
|           "clientSecret": "seaweedfs-s3-secret", | |
|           "jwksUri": "http://keycloak:8080/realms/seaweedfs-test/protocol/openid-connect/certs", | |
|           "scopes": ["openid", "profile", "email", "roles"], | |
|           "claimsMapping": { | |
|             "usernameClaim": "preferred_username", | |
|             "groupsClaim": "roles" | |
|           } | |
|         } | |
|       }, | |
|       { | |
|         "name": "mock-provider", | |
|         "type": "mock", | |
|         "enabled": false, | |
|         "config": { | |
|           "issuer": "http://localhost:9999", | |
|           "jwksEndpoint": "http://localhost:9999/jwks" | |
|         } | |
|       } | |
|     ] | |
|   }, | |
|   "policy": { | |
|     "defaultEffect": "Deny" | |
|   }, | |
|   "roleStore": {}, | |
| 
 | |
|   "roles": [ | |
|     { | |
|       "roleName": "S3AdminRole", | |
|       "roleArn": "arn:seaweed:iam::role/S3AdminRole", | |
|       "trustPolicy": { | |
|         "Version": "2012-10-17", | |
|         "Statement": [ | |
|           { | |
|             "Effect": "Allow", | |
|             "Principal": { | |
|               "Federated": "keycloak-oidc" | |
|             }, | |
|             "Action": ["sts:AssumeRoleWithWebIdentity"], | |
|             "Condition": { | |
|               "StringEquals": { | |
|                 "roles": "s3-admin" | |
|               } | |
|             } | |
|           } | |
|         ] | |
|       }, | |
|       "attachedPolicies": ["S3AdminPolicy"], | |
|       "description": "Full S3 administrator access role" | |
|     }, | |
|     { | |
|       "roleName": "S3ReadOnlyRole", | |
|       "roleArn": "arn:seaweed:iam::role/S3ReadOnlyRole", | |
|       "trustPolicy": { | |
|         "Version": "2012-10-17", | |
|         "Statement": [ | |
|           { | |
|             "Effect": "Allow", | |
|             "Principal": { | |
|               "Federated": "keycloak-oidc" | |
|             }, | |
|             "Action": ["sts:AssumeRoleWithWebIdentity"], | |
|             "Condition": { | |
|               "StringEquals": { | |
|                 "roles": "s3-read-only" | |
|               } | |
|             } | |
|           } | |
|         ] | |
|       }, | |
|       "attachedPolicies": ["S3ReadOnlyPolicy"], | |
|       "description": "Read-only access to S3 resources" | |
|     }, | |
|     { | |
|       "roleName": "S3ReadWriteRole", | |
|       "roleArn": "arn:seaweed:iam::role/S3ReadWriteRole", | |
|       "trustPolicy": { | |
|         "Version": "2012-10-17", | |
|         "Statement": [ | |
|           { | |
|             "Effect": "Allow", | |
|             "Principal": { | |
|               "Federated": "keycloak-oidc" | |
|             }, | |
|             "Action": ["sts:AssumeRoleWithWebIdentity"], | |
|             "Condition": { | |
|               "StringEquals": { | |
|                 "roles": "s3-read-write" | |
|               } | |
|             } | |
|           } | |
|         ] | |
|       }, | |
|       "attachedPolicies": ["S3ReadWritePolicy"], | |
|       "description": "Read-write access to S3 resources" | |
|     } | |
|   ], | |
|   "policies": [ | |
|     { | |
|       "name": "S3AdminPolicy", | |
|       "document": { | |
|         "Version": "2012-10-17", | |
|         "Statement": [ | |
|           { | |
|             "Effect": "Allow", | |
|             "Action": "s3:*", | |
|             "Resource": "*" | |
|           } | |
|         ] | |
|       } | |
|     }, | |
|     { | |
|       "name": "S3ReadOnlyPolicy", | |
|       "document": { | |
|         "Version": "2012-10-17", | |
|         "Statement": [ | |
|           { | |
|             "Effect": "Allow", | |
|             "Action": [ | |
|               "s3:GetObject", | |
|               "s3:GetObjectAcl", | |
|               "s3:GetObjectVersion", | |
|               "s3:ListBucket", | |
|               "s3:ListBucketVersions" | |
|             ], | |
|             "Resource": [ | |
|               "arn:seaweed:s3:::*", | |
|               "arn:seaweed:s3:::*/*" | |
|             ] | |
|           } | |
|         ] | |
|       } | |
|     }, | |
|     { | |
|       "name": "S3ReadWritePolicy", | |
|       "document": { | |
|         "Version": "2012-10-17", | |
|         "Statement": [ | |
|           { | |
|             "Effect": "Allow", | |
|             "Action": [ | |
|               "s3:GetObject", | |
|               "s3:GetObjectAcl", | |
|               "s3:GetObjectVersion", | |
|               "s3:PutObject", | |
|               "s3:PutObjectAcl", | |
|               "s3:DeleteObject", | |
|               "s3:ListBucket", | |
|               "s3:ListBucketVersions" | |
|             ], | |
|             "Resource": [ | |
|               "arn:seaweed:s3:::*", | |
|               "arn:seaweed:s3:::*/*" | |
|             ] | |
|           } | |
|         ] | |
|       } | |
|     } | |
|   ] | |
| }
 |