非 SSL 通信と UnEncryptedObjectUploads を拒否するバケット ポリシーを使用しています。
{
"Id": "Policy1361300844915",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyUnSecureCommunications",
"Action": "s3:*",
"Effect": "Deny",
"Resource": "arn:aws:s3:::my-bucket",
"Condition": {
"Bool": {
"aws:SecureTransport": false
}
},
"Principal": {
"AWS": "*"
}
},
{
"Sid": "DenyUnEncryptedObjectUploads",
"Action": "s3:PutObject",
"Effect": "Deny",
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "AES256"
}
},
"Principal": {
"AWS": "*"
}
}
]
}
このポリシーは、SSL および SSE 設定をサポートするアプリケーションに対して機能しますが、アップロードされるオブジェクトに対してのみ機能します。
私はこれらの問題に遭遇しました:
- CloudBerry Explorer と S3 Browser は、そのバケット ポリシーでバケット内のフォルダとファイルの RENAME 中に失敗しました。バケット ポリシーで SSL 要件のみを適用した後、これらのブラウザーはファイル/フォルダーの名前変更を正常に完了しました。
CloudBerry Explorer は、オプションで有効にした後でのみ、完全な SSL/SSE バケット ポリシーを使用してオブジェクトの名前を変更できました – ローカル コンピューターを介した Amazon S3 のコピー/移動 (遅くて費用がかかります)。
その制限ポリシーにより、Amazon S3 内のすべてのコピー/移動が失敗しました。
つまり、ローカル オブジェクトを操作するアプリケーション以外からのコピー/移動プロセスは制御できません。少なくとも上記の CloudBerry Options はそれを証明しました。
しかし、私は間違っているかもしれないので、この質問を投稿しています。
- 私の場合、そのバケット ポリシーを有効にすると、S3 管理コンソールが役に立たなくなります。ユーザーはフォルダを作成したり削除したりできません。ファイルのアップロードのみが可能です。
バケット ポリシーに何か問題がありますか? オブジェクトの操作に使用された Amazon S3 メカニズムを知りません。
Amazon S3 は外部リクエスト (API/http ヘッダー) と内部リクエストを異なる方法で処理しますか?
このポリシーをアップロードのみに適用し、内部 Amazon S3 GET/PUT などには適用しないことはできますか? バケット URL で http リファラーを試してみましたが、役に立ちませんでした。
SSL/SSE 要件を伴うバケット ポリシーは、私の実装には必須です。
どんなアイデアでも大歓迎です。
前もって感謝します。