diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/s3/iam/README-Docker.md | 2 | ||||
| -rw-r--r-- | test/s3/iam/README.md | 2 | ||||
| -rw-r--r-- | test/s3/iam/STS_DISTRIBUTED.md | 2 | ||||
| -rw-r--r-- | test/s3/iam/iam_config.github.json | 40 | ||||
| -rw-r--r-- | test/s3/iam/iam_config.json | 40 | ||||
| -rw-r--r-- | test/s3/iam/iam_config.local.json | 40 | ||||
| -rw-r--r-- | test/s3/iam/iam_config_distributed.json | 14 | ||||
| -rw-r--r-- | test/s3/iam/iam_config_docker.json | 14 | ||||
| -rw-r--r-- | test/s3/iam/s3_iam_framework.go | 4 | ||||
| -rw-r--r-- | test/s3/iam/s3_iam_integration_test.go | 45 | ||||
| -rwxr-xr-x | test/s3/iam/setup_keycloak_docker.sh | 34 | ||||
| -rw-r--r-- | test/s3/iam/test_config.json | 28 |
12 files changed, 144 insertions, 121 deletions
diff --git a/test/s3/iam/README-Docker.md b/test/s3/iam/README-Docker.md index 3759d7fae..0f8d4108f 100644 --- a/test/s3/iam/README-Docker.md +++ b/test/s3/iam/README-Docker.md @@ -170,7 +170,7 @@ The `setup_keycloak_docker.sh` script automatically generates `iam_config.json` { "claim": "roles", "value": "s3-admin", - "role": "arn:seaweed:iam::role/KeycloakAdminRole" + "role": "arn:aws:iam::role/KeycloakAdminRole" } ``` diff --git a/test/s3/iam/README.md b/test/s3/iam/README.md index ba871600c..b28d0d262 100644 --- a/test/s3/iam/README.md +++ b/test/s3/iam/README.md @@ -257,7 +257,7 @@ Add policies to `test_config.json`: { "Effect": "Allow", "Action": ["s3:GetObject"], - "Resource": ["arn:seaweed:s3:::specific-bucket/*"], + "Resource": ["arn:aws:s3:::specific-bucket/*"], "Condition": { "StringEquals": { "s3:prefix": ["allowed-prefix/"] diff --git a/test/s3/iam/STS_DISTRIBUTED.md b/test/s3/iam/STS_DISTRIBUTED.md index b18ec4fdb..4d3edaf32 100644 --- a/test/s3/iam/STS_DISTRIBUTED.md +++ b/test/s3/iam/STS_DISTRIBUTED.md @@ -248,7 +248,7 @@ services: 3. User calls SeaweedFS STS AssumeRoleWithWebIdentity POST /sts/assume-role-with-web-identity { - "RoleArn": "arn:seaweed:iam::role/S3AdminRole", + "RoleArn": "arn:aws:iam::role/S3AdminRole", "WebIdentityToken": "eyJ0eXAiOiJKV1QiLCJhbGc...", "RoleSessionName": "user-session" } diff --git a/test/s3/iam/iam_config.github.json b/test/s3/iam/iam_config.github.json index b9a2fface..7a903b047 100644 --- a/test/s3/iam/iam_config.github.json +++ b/test/s3/iam/iam_config.github.json @@ -35,25 +35,25 @@ { "claim": "roles", "value": "s3-admin", - "role": "arn:seaweed:iam::role/KeycloakAdminRole" + "role": "arn:aws:iam::role/KeycloakAdminRole" }, { "claim": "roles", "value": "s3-read-only", - "role": "arn:seaweed:iam::role/KeycloakReadOnlyRole" + "role": "arn:aws:iam::role/KeycloakReadOnlyRole" }, { "claim": "roles", "value": "s3-write-only", - "role": "arn:seaweed:iam::role/KeycloakWriteOnlyRole" + "role": "arn:aws:iam::role/KeycloakWriteOnlyRole" }, { "claim": "roles", "value": "s3-read-write", - "role": "arn:seaweed:iam::role/KeycloakReadWriteRole" + "role": "arn:aws:iam::role/KeycloakReadWriteRole" } ], - "defaultRole": "arn:seaweed:iam::role/KeycloakReadOnlyRole" + "defaultRole": "arn:aws:iam::role/KeycloakReadOnlyRole" } } } @@ -64,7 +64,7 @@ "roles": [ { "roleName": "TestAdminRole", - "roleArn": "arn:seaweed:iam::role/TestAdminRole", + "roleArn": "arn:aws:iam::role/TestAdminRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -82,7 +82,7 @@ }, { "roleName": "TestReadOnlyRole", - "roleArn": "arn:seaweed:iam::role/TestReadOnlyRole", + "roleArn": "arn:aws:iam::role/TestReadOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -100,7 +100,7 @@ }, { "roleName": "TestWriteOnlyRole", - "roleArn": "arn:seaweed:iam::role/TestWriteOnlyRole", + "roleArn": "arn:aws:iam::role/TestWriteOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -118,7 +118,7 @@ }, { "roleName": "KeycloakAdminRole", - "roleArn": "arn:seaweed:iam::role/KeycloakAdminRole", + "roleArn": "arn:aws:iam::role/KeycloakAdminRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -136,7 +136,7 @@ }, { "roleName": "KeycloakReadOnlyRole", - "roleArn": "arn:seaweed:iam::role/KeycloakReadOnlyRole", + "roleArn": "arn:aws:iam::role/KeycloakReadOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -154,7 +154,7 @@ }, { "roleName": "KeycloakWriteOnlyRole", - "roleArn": "arn:seaweed:iam::role/KeycloakWriteOnlyRole", + "roleArn": "arn:aws:iam::role/KeycloakWriteOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -172,7 +172,7 @@ }, { "roleName": "KeycloakReadWriteRole", - "roleArn": "arn:seaweed:iam::role/KeycloakReadWriteRole", + "roleArn": "arn:aws:iam::role/KeycloakReadWriteRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -220,8 +220,8 @@ "s3:ListBucket" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -243,8 +243,8 @@ "s3:*" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -254,8 +254,8 @@ "s3:ListBucket" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -277,8 +277,8 @@ "s3:*" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { diff --git a/test/s3/iam/iam_config.json b/test/s3/iam/iam_config.json index b9a2fface..7a903b047 100644 --- a/test/s3/iam/iam_config.json +++ b/test/s3/iam/iam_config.json @@ -35,25 +35,25 @@ { "claim": "roles", "value": "s3-admin", - "role": "arn:seaweed:iam::role/KeycloakAdminRole" + "role": "arn:aws:iam::role/KeycloakAdminRole" }, { "claim": "roles", "value": "s3-read-only", - "role": "arn:seaweed:iam::role/KeycloakReadOnlyRole" + "role": "arn:aws:iam::role/KeycloakReadOnlyRole" }, { "claim": "roles", "value": "s3-write-only", - "role": "arn:seaweed:iam::role/KeycloakWriteOnlyRole" + "role": "arn:aws:iam::role/KeycloakWriteOnlyRole" }, { "claim": "roles", "value": "s3-read-write", - "role": "arn:seaweed:iam::role/KeycloakReadWriteRole" + "role": "arn:aws:iam::role/KeycloakReadWriteRole" } ], - "defaultRole": "arn:seaweed:iam::role/KeycloakReadOnlyRole" + "defaultRole": "arn:aws:iam::role/KeycloakReadOnlyRole" } } } @@ -64,7 +64,7 @@ "roles": [ { "roleName": "TestAdminRole", - "roleArn": "arn:seaweed:iam::role/TestAdminRole", + "roleArn": "arn:aws:iam::role/TestAdminRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -82,7 +82,7 @@ }, { "roleName": "TestReadOnlyRole", - "roleArn": "arn:seaweed:iam::role/TestReadOnlyRole", + "roleArn": "arn:aws:iam::role/TestReadOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -100,7 +100,7 @@ }, { "roleName": "TestWriteOnlyRole", - "roleArn": "arn:seaweed:iam::role/TestWriteOnlyRole", + "roleArn": "arn:aws:iam::role/TestWriteOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -118,7 +118,7 @@ }, { "roleName": "KeycloakAdminRole", - "roleArn": "arn:seaweed:iam::role/KeycloakAdminRole", + "roleArn": "arn:aws:iam::role/KeycloakAdminRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -136,7 +136,7 @@ }, { "roleName": "KeycloakReadOnlyRole", - "roleArn": "arn:seaweed:iam::role/KeycloakReadOnlyRole", + "roleArn": "arn:aws:iam::role/KeycloakReadOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -154,7 +154,7 @@ }, { "roleName": "KeycloakWriteOnlyRole", - "roleArn": "arn:seaweed:iam::role/KeycloakWriteOnlyRole", + "roleArn": "arn:aws:iam::role/KeycloakWriteOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -172,7 +172,7 @@ }, { "roleName": "KeycloakReadWriteRole", - "roleArn": "arn:seaweed:iam::role/KeycloakReadWriteRole", + "roleArn": "arn:aws:iam::role/KeycloakReadWriteRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -220,8 +220,8 @@ "s3:ListBucket" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -243,8 +243,8 @@ "s3:*" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -254,8 +254,8 @@ "s3:ListBucket" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -277,8 +277,8 @@ "s3:*" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { diff --git a/test/s3/iam/iam_config.local.json b/test/s3/iam/iam_config.local.json index b2b2ef4e5..30522771b 100644 --- a/test/s3/iam/iam_config.local.json +++ b/test/s3/iam/iam_config.local.json @@ -39,25 +39,25 @@ { "claim": "roles", "value": "s3-admin", - "role": "arn:seaweed:iam::role/KeycloakAdminRole" + "role": "arn:aws:iam::role/KeycloakAdminRole" }, { "claim": "roles", "value": "s3-read-only", - "role": "arn:seaweed:iam::role/KeycloakReadOnlyRole" + "role": "arn:aws:iam::role/KeycloakReadOnlyRole" }, { "claim": "roles", "value": "s3-write-only", - "role": "arn:seaweed:iam::role/KeycloakWriteOnlyRole" + "role": "arn:aws:iam::role/KeycloakWriteOnlyRole" }, { "claim": "roles", "value": "s3-read-write", - "role": "arn:seaweed:iam::role/KeycloakReadWriteRole" + "role": "arn:aws:iam::role/KeycloakReadWriteRole" } ], - "defaultRole": "arn:seaweed:iam::role/KeycloakReadOnlyRole" + "defaultRole": "arn:aws:iam::role/KeycloakReadOnlyRole" } } } @@ -68,7 +68,7 @@ "roles": [ { "roleName": "TestAdminRole", - "roleArn": "arn:seaweed:iam::role/TestAdminRole", + "roleArn": "arn:aws:iam::role/TestAdminRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -90,7 +90,7 @@ }, { "roleName": "TestReadOnlyRole", - "roleArn": "arn:seaweed:iam::role/TestReadOnlyRole", + "roleArn": "arn:aws:iam::role/TestReadOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -112,7 +112,7 @@ }, { "roleName": "TestWriteOnlyRole", - "roleArn": "arn:seaweed:iam::role/TestWriteOnlyRole", + "roleArn": "arn:aws:iam::role/TestWriteOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -134,7 +134,7 @@ }, { "roleName": "KeycloakAdminRole", - "roleArn": "arn:seaweed:iam::role/KeycloakAdminRole", + "roleArn": "arn:aws:iam::role/KeycloakAdminRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -156,7 +156,7 @@ }, { "roleName": "KeycloakReadOnlyRole", - "roleArn": "arn:seaweed:iam::role/KeycloakReadOnlyRole", + "roleArn": "arn:aws:iam::role/KeycloakReadOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -178,7 +178,7 @@ }, { "roleName": "KeycloakWriteOnlyRole", - "roleArn": "arn:seaweed:iam::role/KeycloakWriteOnlyRole", + "roleArn": "arn:aws:iam::role/KeycloakWriteOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -200,7 +200,7 @@ }, { "roleName": "KeycloakReadWriteRole", - "roleArn": "arn:seaweed:iam::role/KeycloakReadWriteRole", + "roleArn": "arn:aws:iam::role/KeycloakReadWriteRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -260,8 +260,8 @@ "s3:ListBucket" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -287,8 +287,8 @@ "s3:*" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -298,8 +298,8 @@ "s3:ListBucket" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -325,8 +325,8 @@ "s3:*" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { diff --git a/test/s3/iam/iam_config_distributed.json b/test/s3/iam/iam_config_distributed.json index c9827c220..a6d2aa395 100644 --- a/test/s3/iam/iam_config_distributed.json +++ b/test/s3/iam/iam_config_distributed.json @@ -40,7 +40,7 @@ "roles": [ { "roleName": "S3AdminRole", - "roleArn": "arn:seaweed:iam::role/S3AdminRole", + "roleArn": "arn:aws:iam::role/S3AdminRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -63,7 +63,7 @@ }, { "roleName": "S3ReadOnlyRole", - "roleArn": "arn:seaweed:iam::role/S3ReadOnlyRole", + "roleArn": "arn:aws:iam::role/S3ReadOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -86,7 +86,7 @@ }, { "roleName": "S3ReadWriteRole", - "roleArn": "arn:seaweed:iam::role/S3ReadWriteRole", + "roleArn": "arn:aws:iam::role/S3ReadWriteRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -137,8 +137,8 @@ "s3:ListBucketVersions" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] } ] @@ -162,8 +162,8 @@ "s3:ListBucketVersions" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] } ] diff --git a/test/s3/iam/iam_config_docker.json b/test/s3/iam/iam_config_docker.json index c0fd5ab87..a533b16d7 100644 --- a/test/s3/iam/iam_config_docker.json +++ b/test/s3/iam/iam_config_docker.json @@ -25,7 +25,7 @@ "roles": [ { "roleName": "S3AdminRole", - "roleArn": "arn:seaweed:iam::role/S3AdminRole", + "roleArn": "arn:aws:iam::role/S3AdminRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -48,7 +48,7 @@ }, { "roleName": "S3ReadOnlyRole", - "roleArn": "arn:seaweed:iam::role/S3ReadOnlyRole", + "roleArn": "arn:aws:iam::role/S3ReadOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -71,7 +71,7 @@ }, { "roleName": "S3ReadWriteRole", - "roleArn": "arn:seaweed:iam::role/S3ReadWriteRole", + "roleArn": "arn:aws:iam::role/S3ReadWriteRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -122,8 +122,8 @@ "s3:ListBucketVersions" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] } ] @@ -147,8 +147,8 @@ "s3:ListBucketVersions" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] } ] diff --git a/test/s3/iam/s3_iam_framework.go b/test/s3/iam/s3_iam_framework.go index 92e880bdc..178ae0763 100644 --- a/test/s3/iam/s3_iam_framework.go +++ b/test/s3/iam/s3_iam_framework.go @@ -369,9 +369,9 @@ func (f *S3IAMTestFramework) generateSTSSessionToken(username, roleName string, sessionId := fmt.Sprintf("test-session-%s-%s-%d", username, roleName, now.Unix()) // Create session token claims exactly matching STSSessionClaims struct - roleArn := fmt.Sprintf("arn:seaweed:iam::role/%s", roleName) + roleArn := fmt.Sprintf("arn:aws:iam::role/%s", roleName) sessionName := fmt.Sprintf("test-session-%s", username) - principalArn := fmt.Sprintf("arn:seaweed:sts::assumed-role/%s/%s", roleName, sessionName) + principalArn := fmt.Sprintf("arn:aws:sts::assumed-role/%s/%s", roleName, sessionName) // Use jwt.MapClaims but with exact field names that STSSessionClaims expects sessionClaims := jwt.MapClaims{ diff --git a/test/s3/iam/s3_iam_integration_test.go b/test/s3/iam/s3_iam_integration_test.go index c7836c4bf..dcf8422b4 100644 --- a/test/s3/iam/s3_iam_integration_test.go +++ b/test/s3/iam/s3_iam_integration_test.go @@ -410,7 +410,7 @@ func TestS3IAMBucketPolicyIntegration(t *testing.T) { "Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject"], - "Resource": ["arn:seaweed:s3:::%s/*"] + "Resource": ["arn:aws:s3:::%s/*"] } ] }`, bucketName) @@ -443,6 +443,12 @@ func TestS3IAMBucketPolicyIntegration(t *testing.T) { require.NoError(t, err) assert.Equal(t, testObjectData, string(data)) result.Body.Close() + + // Clean up bucket policy after this test + _, err = adminClient.DeleteBucketPolicy(&s3.DeleteBucketPolicyInput{ + Bucket: aws.String(bucketName), + }) + require.NoError(t, err) }) t.Run("bucket_policy_denies_specific_action", func(t *testing.T) { @@ -455,7 +461,7 @@ func TestS3IAMBucketPolicyIntegration(t *testing.T) { "Effect": "Deny", "Principal": "*", "Action": ["s3:DeleteObject"], - "Resource": ["arn:seaweed:s3:::%s/*"] + "Resource": ["arn:aws:s3:::%s/*"] } ] }`, bucketName) @@ -474,17 +480,34 @@ func TestS3IAMBucketPolicyIntegration(t *testing.T) { assert.Contains(t, *policyResult.Policy, "s3:DeleteObject") assert.Contains(t, *policyResult.Policy, "Deny") - // IMPLEMENTATION NOTE: Bucket policy enforcement in authorization flow - // is planned for a future phase. Currently, this test validates policy - // storage and retrieval. When enforcement is implemented, this test - // should be extended to verify that delete operations are actually denied. + // NOTE: Enforcement test is commented out due to known architectural limitation: + // + // KNOWN LIMITATION: DeleteObject uses the coarse-grained ACTION_WRITE constant, + // which convertActionToS3Format maps to "s3:PutObject" (not "s3:DeleteObject"). + // This means the policy engine evaluates the deny policy against "s3:PutObject", + // doesn't find a match, and allows the delete operation. + // + // TODO: Uncomment this test once the action mapping is refactored to use + // specific S3 action strings throughout the S3 API handlers. + // See: weed/s3api/s3api_bucket_policy_engine.go lines 135-146 + // + // _, err = adminClient.DeleteObject(&s3.DeleteObjectInput{ + // Bucket: aws.String(bucketName), + // Key: aws.String(testObjectKey), + // }) + // require.Error(t, err, "DeleteObject should be denied by the bucket policy") + // awsErr, ok := err.(awserr.Error) + // require.True(t, ok, "Error should be an awserr.Error") + // assert.Equal(t, "AccessDenied", awsErr.Code(), "Expected AccessDenied error code") + + // Clean up bucket policy after this test + _, err = adminClient.DeleteBucketPolicy(&s3.DeleteBucketPolicyInput{ + Bucket: aws.String(bucketName), + }) + require.NoError(t, err) }) - // Cleanup - delete bucket policy first, then objects and bucket - _, err = adminClient.DeleteBucketPolicy(&s3.DeleteBucketPolicyInput{ - Bucket: aws.String(bucketName), - }) - require.NoError(t, err) + // Cleanup - delete objects and bucket (policy already cleaned up in subtests) _, err = adminClient.DeleteObject(&s3.DeleteObjectInput{ Bucket: aws.String(bucketName), diff --git a/test/s3/iam/setup_keycloak_docker.sh b/test/s3/iam/setup_keycloak_docker.sh index 6dce68abf..99a952615 100755 --- a/test/s3/iam/setup_keycloak_docker.sh +++ b/test/s3/iam/setup_keycloak_docker.sh @@ -178,25 +178,25 @@ cat > iam_config.json << 'EOF' { "claim": "roles", "value": "s3-admin", - "role": "arn:seaweed:iam::role/KeycloakAdminRole" + "role": "arn:aws:iam::role/KeycloakAdminRole" }, { "claim": "roles", "value": "s3-read-only", - "role": "arn:seaweed:iam::role/KeycloakReadOnlyRole" + "role": "arn:aws:iam::role/KeycloakReadOnlyRole" }, { "claim": "roles", "value": "s3-write-only", - "role": "arn:seaweed:iam::role/KeycloakWriteOnlyRole" + "role": "arn:aws:iam::role/KeycloakWriteOnlyRole" }, { "claim": "roles", "value": "s3-read-write", - "role": "arn:seaweed:iam::role/KeycloakReadWriteRole" + "role": "arn:aws:iam::role/KeycloakReadWriteRole" } ], - "defaultRole": "arn:seaweed:iam::role/KeycloakReadOnlyRole" + "defaultRole": "arn:aws:iam::role/KeycloakReadOnlyRole" } } } @@ -207,7 +207,7 @@ cat > iam_config.json << 'EOF' "roles": [ { "roleName": "KeycloakAdminRole", - "roleArn": "arn:seaweed:iam::role/KeycloakAdminRole", + "roleArn": "arn:aws:iam::role/KeycloakAdminRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -225,7 +225,7 @@ cat > iam_config.json << 'EOF' }, { "roleName": "KeycloakReadOnlyRole", - "roleArn": "arn:seaweed:iam::role/KeycloakReadOnlyRole", + "roleArn": "arn:aws:iam::role/KeycloakReadOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -243,7 +243,7 @@ cat > iam_config.json << 'EOF' }, { "roleName": "KeycloakWriteOnlyRole", - "roleArn": "arn:seaweed:iam::role/KeycloakWriteOnlyRole", + "roleArn": "arn:aws:iam::role/KeycloakWriteOnlyRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -261,7 +261,7 @@ cat > iam_config.json << 'EOF' }, { "roleName": "KeycloakReadWriteRole", - "roleArn": "arn:seaweed:iam::role/KeycloakReadWriteRole", + "roleArn": "arn:aws:iam::role/KeycloakReadWriteRole", "trustPolicy": { "Version": "2012-10-17", "Statement": [ @@ -309,8 +309,8 @@ cat > iam_config.json << 'EOF' "s3:ListBucket" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -330,8 +330,8 @@ cat > iam_config.json << 'EOF' "Effect": "Allow", "Action": ["s3:*"], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -341,8 +341,8 @@ cat > iam_config.json << 'EOF' "s3:ListBucket" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { @@ -362,8 +362,8 @@ cat > iam_config.json << 'EOF' "Effect": "Allow", "Action": ["s3:*"], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] }, { diff --git a/test/s3/iam/test_config.json b/test/s3/iam/test_config.json index d2f1fb09e..2684c3cc3 100644 --- a/test/s3/iam/test_config.json +++ b/test/s3/iam/test_config.json @@ -164,8 +164,8 @@ "Effect": "Allow", "Action": ["s3:*"], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] } ] @@ -184,8 +184,8 @@ "s3:GetBucketVersioning" ], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ] } ] @@ -207,7 +207,7 @@ "s3:ListMultipartUploadParts" ], "Resource": [ - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*/*" ] } ] @@ -227,7 +227,7 @@ "s3:PutBucketVersioning" ], "Resource": [ - "arn:seaweed:s3:::*" + "arn:aws:s3:::*" ] } ] @@ -239,8 +239,8 @@ "Effect": "Allow", "Action": ["s3:*"], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ], "Condition": { "IpAddress": { @@ -257,8 +257,8 @@ "Effect": "Allow", "Action": ["s3:GetObject", "s3:ListBucket"], "Resource": [ - "arn:seaweed:s3:::*", - "arn:seaweed:s3:::*/*" + "arn:aws:s3:::*", + "arn:aws:s3:::*/*" ], "Condition": { "DateGreaterThan": { @@ -281,7 +281,7 @@ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", - "Resource": "arn:seaweed:s3:::example-bucket/*" + "Resource": "arn:aws:s3:::example-bucket/*" } ] }, @@ -294,8 +294,8 @@ "Principal": "*", "Action": ["s3:DeleteObject", "s3:DeleteBucket"], "Resource": [ - "arn:seaweed:s3:::example-bucket", - "arn:seaweed:s3:::example-bucket/*" + "arn:aws:s3:::example-bucket", + "arn:aws:s3:::example-bucket/*" ] } ] @@ -308,7 +308,7 @@ "Effect": "Allow", "Principal": "*", "Action": ["s3:GetObject", "s3:PutObject"], - "Resource": "arn:seaweed:s3:::example-bucket/*", + "Resource": "arn:aws:s3:::example-bucket/*", "Condition": { "IpAddress": { "aws:SourceIp": ["203.0.113.0/24"] |
