Skip to content

Commit 13f43d6

Browse files
committed
fix: avoid persisting inline OSS credentials in jindocache
1 parent 768c713 commit 13f43d6

2 files changed

Lines changed: 50 additions & 6 deletions

File tree

pkg/ddc/jindocache/transform.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -465,12 +465,6 @@ func (e *JindoCacheEngine) transformMaster(runtime *datav1alpha1.JindoRuntime, m
465465
return err
466466
}
467467
propertiesFileStore["jindocache.oss.bucket."+ossBucketName+".endpoint"] = mount.Options["fs.oss.endpoint"]
468-
if mount.Options["fs.oss.accessKeyId"] != "" {
469-
propertiesFileStore["jindocache.oss.bucket."+ossBucketName+".accessKeyId"] = mount.Options["fs.oss.accessKeyId"]
470-
}
471-
if mount.Options["fs.oss.accessKeySecret"] != "" {
472-
propertiesFileStore["jindocache.oss.bucket."+ossBucketName+".accessKeySecret"] = mount.Options["fs.oss.accessKeySecret"]
473-
}
474468
if strings.Contains(mount.Options["fs.oss.endpoint"], "dls") {
475469
propertiesFileStore["jindocache.oss.bucket."+ossBucketName+".data.lake.storage.enable"] = "true"
476470
}

pkg/ddc/jindocache/transform_test.go

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1752,6 +1752,56 @@ func TestJindoCacheEngine_transformMasterWithMultipleOSSEncryptOptions(t *testin
17521752
}
17531753
}
17541754

1755+
func TestJindoCacheEngine_transformMasterDoesNotPersistInlineOSSCredentials(t *testing.T) {
1756+
s := runtime.NewScheme()
1757+
s.AddKnownTypes(datav1alpha1.GroupVersion, &datav1alpha1.JindoRuntime{}, &datav1alpha1.Dataset{})
1758+
_ = corev1.AddToScheme(s)
1759+
1760+
engine := JindoCacheEngine{
1761+
name: "test",
1762+
namespace: "fluid",
1763+
Client: fake.NewFakeClientWithScheme(s),
1764+
Log: fake.NullLogger(),
1765+
runtime: &datav1alpha1.JindoRuntime{
1766+
Spec: datav1alpha1.JindoRuntimeSpec{
1767+
Fuse: datav1alpha1.JindoFuseSpec{},
1768+
},
1769+
},
1770+
}
1771+
1772+
dataset := &datav1alpha1.Dataset{
1773+
Spec: datav1alpha1.DatasetSpec{
1774+
Mounts: []datav1alpha1.Mount{{
1775+
MountPoint: "oss://bucket-a/data",
1776+
Name: "mount-a",
1777+
Options: map[string]string{
1778+
"fs.oss.endpoint": "oss-cn-shanghai.aliyuncs.com",
1779+
"fs.oss.accessKeyId": "inline-ak",
1780+
"fs.oss.accessKeySecret": "inline-sk",
1781+
},
1782+
}},
1783+
},
1784+
}
1785+
1786+
value := &Jindo{}
1787+
if err := engine.transformMaster(engine.runtime, "/test", value, dataset, true); err != nil {
1788+
t.Fatalf("transformMaster() error = %v", err)
1789+
}
1790+
1791+
if got := value.Master.FileStoreProperties["jindocache.oss.bucket.bucket-a.endpoint"]; got != "oss-cn-shanghai.aliyuncs.com" {
1792+
t.Fatalf("expected bucket-a endpoint to be preserved, got %q", got)
1793+
}
1794+
if _, ok := value.Master.FileStoreProperties["jindocache.oss.bucket.bucket-a.accessKeyId"]; ok {
1795+
t.Fatalf("expected inline bucket-a accessKeyId to stay out of fileStoreProperties")
1796+
}
1797+
if _, ok := value.Master.FileStoreProperties["jindocache.oss.bucket.bucket-a.accessKeySecret"]; ok {
1798+
t.Fatalf("expected inline bucket-a accessKeySecret to stay out of fileStoreProperties")
1799+
}
1800+
if len(value.SecretProjections) != 0 {
1801+
t.Fatalf("expected no secret projections for inline credentials, got %d", len(value.SecretProjections))
1802+
}
1803+
}
1804+
17551805
func TestJindoEngine_transformMountpoint(t *testing.T) {
17561806
jindocacheSecret := &corev1.Secret{
17571807
ObjectMeta: metav1.ObjectMeta{

0 commit comments

Comments
 (0)