0

目標: 機密データを s3 バケットに保持し、プライベート クラウドにある EC2 インスタンスで処理したいと考えています。IP およびユーザー (iam) arn によって S3 バケット ポリシーを設定する可能性があることを調査したため、s3 バケットのデータは「安全側」にあると考えています。しかし、私は次のシナリオについて心配しています:
1) vpc があります
2) そこには ec2 isntance
があります 3) 制御された (許可された) アカウントの下に、ec2 インスタンスとバケットに接続して操作する権限を持つユーザーがいます。バケットは、既知の (承認された) ec2 インスタンスでのみ動作するように定義および構成されています。
セキュリティリーク:ユーザーがマルウェア アプリケーションを ec2 インスタンスにアップロードし、データの処理中にマルウェア アプリケーションを実行して、別の AWS アカウントの他の (未承認の) バケットにデータを転送します。
私の場合、ec2-instance へのデータのアップロードを無効にすることはできません。
質問:特定の s3 バケットへのアクセスのみを許可し、他のバケットへのアクセスは拒否するように、vpc ファイアウォールへのアクセスを制限することはできますか? ユーザーがマルウェア アプリケーションを ec2 インスタンスにアップロードし、その中でデータを他のバケット (サード パーティの AWS アカウントの下) にアップロードすると仮定しました。

4

2 に答える 2

3

あなたが求めていることに対する解決策は実際にはありませんが、繰り返しますが、間違った問題を解決しようとしているようです (私があなたの質問を正しく理解していれば)。

信頼できないユーザーが「ec2 インスタンスとバケットに接続して作業」し、VPC 内でアプリケーション コードをアップロードして実行できる立場にある場合、すべての賭けはオフになり、ゲームはすでに終了しています。アプリケーションをシャットダウンすることが唯一の解決策です。悪意のあるコードが機密データを S3 の他のバケットにアップロードするのを防ぐことで、被害を最小限に抑えようとすることは、まったく心配する必要がありません。データを S3 に戻して別のバケットに入れる以外に、悪意のあるユーザーが利用できるオプションは他にもたくさんあります。

また、「ec2 インスタンスとバケットに接続して作業する」を意図したよりも広く解釈している可能性もあります。つまり、ユーザーがアプリケーションにデータをアップロードできるということだけです。ええと、わかりました...しかし、あなたの懸念はまだ間違った点に焦点を合わせているようです.

ユーザーがデータをアップロードできるアプリケーションがあります。必要なすべてのマルウェアをアップロードできますが、アップロードしたデータにたまたま含まれているコード (悪意のあるコードまたは無害なコード) が実行されることはありません。私のシステムは、アップロードされたデータを実行するものと混同したり、リモートでさえ可能な方法で処理したりすることは決してありません. あなたのコードがそうするなら、あなたのインスタンスがアクセスできるバケットを制限することによってではなく、あなたのコードを修正することによってのみ解決できる問題があります。

実は、解決策がないと言ったとき、私は嘘をつきました。解決策はありますが、かなりばかげています。

EC2 または外部のどこかにリバース Web プロキシを設定しますが、もちろん悪意のあるユーザーがその構成にアクセスできないようにします。このプロキシの構成で、目的のバケットへのアクセスのみを許可するように構成します。たとえば、Apache では、バケットの名前が「mybucket」の場合、次のようになります。

ProxyPass /mybucket http://s3.amazonaws.com/mybucket

プロキシで追加の構成を行うと、インスタンス以外からのプロキシへのアクセスが拒否されます。次に、インスタンスが s3 エンドポイントに直接アクセスすることを許可する代わりに、(侵害されたインスタンスのセキュリティ グループを介して) プロキシへの送信 http のみを許可します。自分以外のバケットへのリクエストはプロキシを通過しません。これが現在唯一の「アウト」方法です。問題が解決しました。少なくとも、解決したいと思っていた特定の問題は、このアプローチのバリエーションによって解決できるはずです。

明確にするために更新します。

通常の方法で「mybucket」というバケットにアクセスするには、次の 2 つの方法があります。

http://s3.amazonaws.com/mybucket/object_key
http://mybucket.s3.amazonaws.com/object_key

この構成では、セキュリティ グループ構成を介してインスタンスからすべての S3 エンドポイントへのすべてのアクセスをブロック (許可しない) し、どちらの方法でもバケットにアクセスできなくなります。代わりに、インスタンスからプロキシへのアクセスを許可します。

たとえば、プロキシが 172.31.31.31 にある場合、次のようにバケットとそのオブジェクトにアクセスします。

http://172.31.31.31/mybucket/object_key

パス内の特定のパターンの転送のみを許可し、その他のパタ​​ーンは拒否するように構成されているプロキシは、特定のバケットにアクセスできるかどうかを制御します。

于 2012-12-27T06:46:44.057 に答える