2017-12-10 20 views
1

私はユーザーデータスクリプトとログが私に語っユーザーデータスクリプトはCLI AWSを呼び出すために

/usr/bin/aws s3 cp ... 

は、その許可が拒否されたコマンドを使用して、EC2インスタンスに起動時にS3からいくつかのファイルを取得しようとしていますし、私は、それがユーザーデータスクリプトを実行するときに資格情報を見つけることができないためです。

インスタンスの起動後にsudoコマンドを実行すると、正常に動作します。

awsをsudoとwithoutの両方で実行しました。

私はAMIで作業しているので、スクリプトを変更する必要があるため、起動時に何かを実行するためにcronジョブを使用したくないので、毎回新しいAMIを作成するのではなく、スクリプトが変更されます。

可能であれば、資格情報をスクリプトに書き込まないようにしたいと思います。

ユーザーデータスクリプトの実行時に資格情報が使用されるようにawscliを構成するにはどうすればよいですか?

答えて

1

あなたは、事前に定義されたIAM役割を受け取るためにあなたのEC2インスタンスを設定することができ、それがaws-cliコマンドを呼び出すことができます電源を入れ、それがインスタンス化時フェッチインスタンスにその資格情報を「焼きインを」持っている User Dataスクリプトで、資格情報を設定する必要はありません。

ここEC2ためIAMロールの詳細があります: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html

それはあなたがために、あなたのインスタンスに割り当てるIAM役割に適切なポリシーを添付する必要がありますことを、ここでは注目に値します成功するコマンドはaws-cliです。詳細については、こちらをご覧ください: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#working-with-iam-roles

+1

IAM資格情報はインスタンスに決して焼き付けられません。これらはメタデータサーバーから要求に応じてフェッチされます。 – helloV

+0

@helloV良い点。上記で編集されました。ここを徘徊する人は、より簡潔で詳細な説明のためにhelloVの答えを見なければなりません。 – AJB

2

インスタンス/ AMIからAWS資格情報を削除することをお勧めします。 AWSメタデータサーバーが必要とする場合、userdataスクリプトには一時的な資格情報が提供されます。

参照:IAM Roles for Amazon EC2

  • クリア/インスタンスからAWSの資格情報の設定を削除し、
  • スクリプトを実行するための最小限の権限はIAMロールを作成し、添付したポリシーを作成するAMI
  • を作成
  • (非常に重要)
  • インスタンスを起動すると、 のIAMロールを添付してください資格情報を明示的に指定せずに、または資格情報ファイルを使用せずに/usr/bin/aws s3 cp ...にuserdataスクリプトコールをさせてください。
関連する問題