2017-11-07 14 views
0

私はs3のための事前に署名されたURLを作成することができる必要があるec2インスタンスにサーバープログラムを展開しています。これまではAWSの資格情報をテスト用の環境変数に入れていましたが、今はIAMの役割戦略に切り替えたいと考えています。しかし、どのポリシーにアクセスする必要があるのか​​はわかりません。私の最初の推測はAmazonS3FullAccessを持つことですが、「AWS管理コンソールを介してすべてのバケットへのフルアクセスを提供する」と記載されていますが、ec2インスタンスは管理コンソールではなくC++ sdkを使用します。それともポリシーは重要ではないですか?それはポリシーがあるので、何とかクレデンシャルを取得しますか?AWSどのようなS3のためのIAMの役割は、事前に設定されたURL

答えて

3

あなたはポリシーと役割が混乱しています。

ポリシーは、ユーザー、ロール、またはグループにアクセス許可を与えます。

ユーザと役割の違いは微妙ですが、基本的にはEC2インスタンスのようなAWSの他のサービスによって引き受けられるものですが、ユーザーは一般にAWSで使用するために作成したIDです。

フルアクセスのポリシー記述では管理コンソールに言及することはできますが、コンソール、apiまたはsdk経由ですべてのバケットに完全にアクセスできます。

フルアクセスポリシーは使用しないでください。あなたは実際のポリシーを構築するためのベースとして使うことができますが、IAMは常に必要最低限​​の権限を与えます。この場合、ロールは特定のバケットに対する読み取りと可能性のあるリストパーミッションを必要とします読書用のURLを生成する場合は問題のURLを、アップロードを許可する場合はアクセス許可を入れてください。

+0

ありがとう!私の混乱は、署名するURLだけのためのポリシーやアクションがなかったために開始されましたが、結局私はs3:GetObjectとs3:PutObjectを実行できるポリシーでテストしました。私はあなたがアップロードする署名付きのURLを提供するつもりならば、少なくとも自分自身をアップロードすることができます – aspirino67

1

開発のために、作成した役割にAmazonS3FullAccessポリシーを添付することができます。 EC2インスタンスにIAMロールを添付すると、資格情報をエクスポートする必要はありません。

ただし、開発作業が完了したら、ポリシーを再訪してより制限します。新しい管理対象ポリシー(AmazonS3FullAccessはAWSによって管理され、その中のアクセス権を更新することはできません)を作成するか、アプリケーションに必要な特定のアクセス許可で新しいインラインポリシーを作成することができます。

+0

これは魅力的な運命です。 *今すぐ*正しいポリシーを取得する時間がない場合は、何かを壊す恐れがあるため、後でその完全なアクセス*を後で削除する時間はありません。 –

関連する問題