minio共有桶私有桶概念
在 MinIO 中,有两种类型的存储桶:共有桶(Public Bucket)和私有桶(Private Bucket)。
共有桶(Public Bucket):
- 共有桶是所有用户都可以访问的存储桶。
- 公开的对象可以通过公开的 URL 直接访问,无需进行身份验证。
- 共有桶对于存储公开数据(如公共文件、静态网站等)非常有用。
私有桶(Private Bucket):
- 私有桶是需要进行身份验证才能访问的存储桶。
- 对象只能通过授权的用户或角色进行访问。
- 私有桶提供了更高的安全性和访问控制。
要创建共有桶或私有桶,你可以使用 MinIO 的命令行工具 mc
或者 MinIO 的客户端 SDK 进行操作。以下是使用 mc
命令创建共有桶或私有桶的示例:
创建共有桶:
mc mb myminio/public-bucket
创建私有桶:
mc mb myminio/private-bucket
在创建存储桶后,你可以通过设置适当的访问策略(如 Bucket Policy)来进一步控制共有桶或私有桶的访问权限。
minio创建桶 java
以下是使用Java SDK在MinIO中创建桶的示例代码:
import io.minio.MinioClient;
import io.minio.errors.MinioException;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
public class CreateBucket {
public static void main(String[] args)
throws NoSuchAlgorithmException, IOException, InvalidKeyException {
try {
// 使用MinioClient对象连接到MinIO对象存储服务器
MinioClient minioClient =
new MinioClient("https://play.min.io", "ACCESS_KEY", "SECRET_KEY");
// 使用makeBucket()方法创建一个新的桶
boolean found = minioClient.bucketExists("mybucket");
if (found) {
System.out.println("Bucket already exists.");
} else {
minioClient.makeBucket("mybucket");
System.out.println("Bucket created successfully.");
}
} catch (MinioException e) {
System.out.println("Error occurred: " + e);
}
}
}
在上面的代码中,我们首先创建了一个MinioClient对象,然后使用该对象连接到MinIO对象存储服务器。接下来,我们使用makeBucket()方法创建一个名为“mybucket”的新桶。如果桶已经存在,它将输出“Bucket already exists.”的消息。
minio防止桶删除
MinIO 中防止存储桶被删除的配置方法
为了保护存储桶不被意外或恶意删除,在MinIO中可以通过多种方式实现这一目标。具体措施包括启用版本控制、使用对象锁定功能以及设置存储桶策略。
启用版本控制
当启用了版本控制之后,即使文件被覆盖或者删除,旧版本仍然会被保留下来。这使得管理员可以在必要时恢复之前的状态[^1]。
mc ilm add --enable-versioning myminio/mybucket
此命令用于开启指定存储桶mybucket
上的版本管理特性。
使用对象锁定(WORM)
对于更加严格的数据保护需求,可以利用MinIO的对象锁定机制。一旦设置了不可变模式,则无法更改或移除这些受保护的对象直到设定的时间结束为止。这对于满足法律合规性和长期存档非常有用[^2]。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": ["s3:DeleteBucket"],
"Resource": ["arn:aws:s3:::example-bucket"]
}
]
}
上述JSON定义了一个IAM Policy片段,它拒绝所有人执行s3:DeleteBucket
操作于名为example-bucket
的资源上。
设置存储桶策略
通过编写自定义的S3兼容权限策略来限制特定用户的访问行为也是一种有效的手段。例如,下面的例子展示了怎样创建一条规则阻止任何尝试销毁整个存储空间的行为:
以上三种方案可以根据实际应用场景单独应用或是组合起来共同作用以达到更佳的安全效果。
相关推荐
















