在 S3 AWS 存储桶上启用 MFA 删除

Enable MFA Delete on S3 AWS Bucket

我,

我想在 AWS S3 存储桶上启用 "MFA delete"。官方文档 (cf http://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete)

我不知道 MFA 的 "serial number" 是什么?

似乎很难编写 python 代码来生成正确签名的 headers。你对我有什么建议吗? (例如现有的 python 脚本!:p)

官方代码片段:

PUT /?versioning HTTPS/1.1 
Host: BucketName .s3.amazonaws.com 
Date: Date 
Authorization: Signature 
Content-Type: ContentType 
Content-Length: Length-of-Content 
x-amz-mfa: [SerialNumber] [AuthenticationCode] 

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
<Status> Enabled </Status> 
<MfaDelete> Enabled </MfaDelete> 
</VersioningConfiguration> 

如果是虚拟MFA,那么只要给虚拟MFA设备的ARN作为序列号即可。验证码是设备上显示的当前代码。您可以从 IAM 仪表板或通过执行 CLI 获取 ARN:

$ aws iam list-mfa-devices
{
    "MFADevices": [
        {
            "UserName": "obama",
            "SerialNumber": "arn:aws:iam::1234827366789:mfa/obama",
            "EnableDate": "2015-09-16T18:47:44Z"
        }
    ]
}

如果你需要一个python例子:mfa_delete