0

定期的にS3にアップロードするDjangoアプリケーションがあります。S3キーとシークレットを設定ファイルに保存するのは簡単だと思いました。

S3_KEY = "whateverkeything"
S3_SECRET = "mykeysecret"

次に、セキュリティと、該当する場合は常にアクセス許可を制限するという考えを考慮して、このアプローチを再検討しました。私のアプリケーションは、オブジェクトをGETおよびPUT / POSTするだけでよく、オブジェクトをDELETEすることも、バケットを作成または削除することもありません。さらに、誰かが私のAWSキーとシークレットにアクセスした場合、100個の大規模なEC2インスタンスを起動して実行する可能性があります。たくさんの借金に。

アクセスを制限し、説明されている権限のみを持つS3の新しい「ユーザー」を作成する方法はありますか?それとも私は妄想的すぎますか?

4

1 に答える 1

1

絶対に必要な権限のみを持つユーザーを作成する必要があります。IAM(Identity and Access Management)を使用すると簡単に実行できます。既存のAWSアカウントで新しいユーザーを作成し(AWSコンソールから最も簡単に作成できます)、必要最小限のアクセス許可を与えることができます。そうすることで、資格情報が何らかの形で侵害された場合でも、被害の範囲は限定されます。

もう1つのオプションは、サーバーにIAMロールを割り当てることですが、PHPツールがロールで機能するかどうかはわかりません。

S3権限の割り当ては、コンソールのポリシーエディターを使用すると非常に簡単です。特定の操作(G​​ETオブジェクトとPUTオブジェクトのようです)を選択し、それを適用するリソースの「ARN」を指定するだけです。バケットの名前が「mybucket」の場合、ARNはになりますarn:aws:s3:::mybucket/*。バケット内のリソースもリストする必要がある場合は、ARNがarn:aws:s3:::mybucket(末尾のスラッシュやアスタリスクなし)のリストバケットの2番目のポリシーを追加します。

IAMユーザーとロールに関する情報は、IAMユーザーガイドに記載されています。

于 2013-03-19T01:37:44.657 に答える