【问题标题】:Bucket policy with MinioMinio 的存储桶策略
【发布时间】: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 客户端有什么解决方法吗?

【问题讨论】:

    标签: python minio


    【解决方案1】:

    如果您分享您遇到的实际错误,则更容易找出问题所在。但是,我冒昧地猜测您在策略中的存储桶级别权限声明中还需要 "s3:GetBucketLocation"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      相关资源
      最近更新 更多