4

非 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 設定をサポートするアプリケーションに対して機能しますが、アップロードされるオブジェクトに対してのみ機能します。

私はこれらの問題に遭遇しました:

  1. CloudBerry Explorer と S3 Browser は、そのバケット ポリシーでバケット内のフォルダとファイルの RENAME 中に失敗しました。バケット ポリシーで SSL 要件のみを適用した後、これらのブラウザーはファイル/フォルダーの名前変更を正常に完了しました。

CloudBerry Explorer は、オプションで有効にした後でのみ、完全な SSL/SSE バケット ポリシーを使用してオブジェクトの名前を変更できました – ローカル コンピューターを介した Amazon S3 のコピー/移動 (遅くて費用がかかります)。

その制限ポリシーにより、Amazon S3 内のすべてのコピー/移動が失敗しました。

つまり、ローカル オブジェクトを操作するアプリケーション以外からのコピー/移動プロセスは制御できません。少なくとも上記の CloudBerry Options はそれを証明しました。

しかし、私は間違っているかもしれないので、この質問を投稿しています。

  1. 私の場合、そのバケット ポリシーを有効にすると、S3 管理コンソールが役に立たなくなります。ユーザーはフォルダを作成したり削除したりできません。ファイルのアップロードのみが可能です。

バケット ポリシーに何か問題がありますか? オブジェクトの操作に使用された Amazon S3 メカニズムを知りません。

Amazon S3 は外部リクエスト (API/http ヘッダー) と内部リクエストを異なる方法で処理しますか?

このポリシーをアップロードのみに適用し、内部 Amazon S3 GET/PUT などには適用しないことはできますか? バケット URL で http リファラーを試してみましたが、役に立ちませんでした。

SSL/SSE 要件を伴うバケット ポリシーは、私の実装には必須です。

どんなアイデアでも大歓迎です。

前もって感謝します。

4

1 に答える 1