请注意:我不是使用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客户端有什么解决办法吗?
发布于 2022-02-25 19:14:46
如果您共享所得到的实际错误,则更容易解决问题。但是,我冒昧地猜测,您还需要在策略中的桶级权限语句中使用"s3:GetBucketLocation"。
https://stackoverflow.com/questions/70306168
复制相似问题