如何在数据砖中管理 S3 挂载的权限



在Databricks中,从S3读取通常是通过首先将S3存储桶挂载到DBFS来完成的:

// Replace with your values
//
// NOTE: Set the access to this notebook appropriately to protect the security of your keys.
// Or you can delete this cell after you run the mount command below once successfully.
val AccessKey = "REPLACE_WITH_YOUR_ACCESS_KEY"
val SecretKey = "REPLACE_WITH_YOUR_SECRET_KEY"
val EncodedSecretKey = SecretKey.replace("/", "%2F")
val AwsBucketName = "REPLACE_WITH_YOUR_S3_BUCKET"
val MountName = "REPLACE_WITH_YOUR_MOUNT_NAME"
dbutils.fs.mount(s"s3a://$AccessKey:$EncodedSecretKey@$AwsBucketName", s"/mnt/$MountName")

挂载 S3 存储桶后,所有用户都可以使用它。这可能会导致用户更改或删除他们不熟悉的数据时出现严重问题。

我想以只读模式挂载几个存储桶,并且不允许任何人在没有特定权限的情况下堆积存储桶。

如何管理用户将 S3 存储桶挂载到 Databricks 中的权限?

最好使用 AWS IAM 角色来提供对存储桶的只读访问权限。基本步骤是:

  1. 创建 IAM 角色。
  2. 指定有权代入该角色的用户。
  3. 创建为角色提供只读访问权限的存储桶策略。
  4. 使用 dbfs.fs.mount 命令将存储桶挂载到 Databricks 文件系统。
  5. 在创建数据砖集群时指定 IAM 角色。

最新更新