【发布时间】:2021-12-10 14:41:07
【问题描述】:
请注意:我没有使用 AWS 作为 S3 提供商,而是使用 Cegedim S3。
以下操作不适用于 Minio 客户端,但适用于 boto3。
当我尝试使用 Minio 客户端设置以下策略时,它适用于存储桶级别操作,但不适用于对象级别操作。
policy = {
"Version": "2012-10-17",
"Id": "Policy1639139464683",
"Statement": [
{
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::test",
"Effect": "Allow",
"Principal": {
"AWS": [
"{user_access_key}"
]
},
"Sid": "Stmt1639139460416"
},
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::test/*",
"Effect": "Allow",
"Principal": {
"AWS": [
"{user_access_key}"
]
},
"Sid": "Stmt1639139460415",
}
]
}
Minio 连接
def minio(self) -> Minio:
return Minio(
endpoint=f"{self.config.s3.host}:{self.config.s3.port}",
access_key=Secrets.S3_USER.get_value(),
secret_key=Secrets.S3_PASSWORD.get_value(),
secure=(self.config.s3.schema != "http"),
)
设置此策略后,我无法对对象执行 get/put 或任何其他操作。
Minio 客户端有什么解决方法吗?
【问题讨论】: