Gitlab Omnibus:从 Amazon S3 删除备份

Gitlab Omnibus: Delete backup from Amazon S3

我想删除超过 1 周的备份文件。我已经从 gitlab 中关注了这个 backup document 并成功创建了备份文件以上传到 Amazon S3。

我也设置了gitlab_rails['backup_keep_time'] = 604800但是没用

但是,根据我在他们创建的 IAM 用户策略中观察到的情况。没有删除文件的权限。

备份文件正在打包,我不想在 AWS 中手动执行此操作。

有什么标准的方法可以删除 Amazon S3 中 gitlab omnibus 包的备份文件吗?

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1412062044000",
      "Effect": "Allow",
      "Action": [
        "s3:AbortMultipartUpload",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:GetObjectAcl",
        "s3:ListBucketMultipartUploads",
        "s3:PutObject",
        "s3:PutObjectAcl"
      ],
      "Resource": [
        "arn:aws:s3:::my.s3.bucket/*"
      ]
    },
    {
      "Sid": "Stmt1412062097000",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketLocation",
        "s3:ListAllMyBuckets"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "Stmt1412062128000",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my.s3.bucket"
      ]
    }
  ]
}

如果您只对清除 s3 存储桶中的旧备份感兴趣,您可以直接在 AWS 中实现。在 s3 存储桶属性上,您可以设置生命周期策略以使早于指定天数的文件过期或移动到便宜得多的冰川。

您可以通过以下步骤使用 S3 生命周期策略:

  1. 单击您的 S3 属性 和 select 生命周期选项卡,然后单击添加规则。

  2. 单击“配置规则”。

  3. 选中永久删除并输入7天(或任何其他您想要的数字)并点击审核。

  4. 输入规则名称并点击“创建并激活规则”。

  5. 检查您的规则创建成功并享受。

请注意,backup_keep_time 配置选项仅管理本地文件。 GitLab 不会自动修剪存储在第三方对象存储(例如 AWS S3)中的旧文件...

https://docs.gitlab.com/ce/raketasks/backup_restore.html