インスタンスをIAMロールでフィルタリングする方法はありますか? 基本的には、私が起動したすべてのインスタンスを終了するスクリプトが必要ですが、他のIAMロールで起動されたインスタンスには触れません。boto3のインスタンスをIAMロールでフィルタリングしますか?
1
A
答えて
2
方法1:
それだけで1回限りの活動であるならば、あなたはAWS-CLI自体の使用を検討することができます。
特定のIAMロールを持つすべてのインスタンスを一覧表示するには、以下のaws-cliコマンドを使用します。
aws ec2 describe-instances --region us-east-1 --query 'Reservations[*].Instances[?IamInstanceProfile.Arn==`<Enter you Instance Profile ARN here>`].{InstanceId: InstanceId}' --output text
インスタンス・プロファイルアーンで<Enter you Instance Profile ARN here>
を交換してください。
注: あなたは、NOTRole ARN
Instance Profile Arn
とを入力する必要があります。あなたは、その後のリストを渡すことができます/プロフィール-ASDNSDLKJ
インスタンスプロファイル:
ARN:AWS:IAM :: XXXXXXXXXXXXアーンプロフィール
インスタンスは次の形式になりますは、上記のcliコマンドの
terminate-instance
に返されます。 instance-idsは、スペースで区切る必要があります。
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0 i-1234567890jkefpq1
方法2:
import boto3 client = boto3.client('ec2',region_name='us-east-1') response = client.describe_instances( Filters=[ { 'Name': 'iam-instance-profile.arn', 'Values': [ 'arn:aws:iam::1234567890:instance-profile/MyProfile-ASDNSDLKJ', ] }, ] ) terminate_instance_list = [] for resp in response['Reservations']: for inst in resp['Instances']: #print inst['InstanceId'] terminate_instance_list.append(inst['InstanceId']) #print(terminate_instance_list) if terminate_instance_list: response = client.terminate_instances( InstanceIds=terminate_instance_list ) print(response)
関連する問題
- 1. boto3:instanceprofile/IAMロールでインスタンスを作成する
- 2. AWS EC2インスタンスIAMロールでロールが動作しないと仮定します。
- 3. クロスアカウントを持つEC2インスタンスIAMロール
- 4. Terraform:AWS Redshift IAMロール
- 5. AWS ECS DockerコンテナBoto3 IAMパーミッション
- 6. IAM CloudFormationテンプレートAWSロール
- 7. AWS IAMロール対グループ
- 8. boto3 iam client:名前でポリシーを取得
- 9. Boto3を使用してIAMロールを持つEC2インスタンスを起動するにはどうすればよいですか?
- 10. IAMロール名の変更
- 11. 他のユーザー/ロールがIAMロールでEC2インスタンスを作成することを拒否する方法
- 12. インスタンスIDがIAMポリシー内のインスタンスIDと一致しない場合、IAMロールをEC2インスタンスにアタッチするように制限する
- 13. javaを使用してIAMロールのec2インスタンスでアクセスクレデンシャルなしでDynamodbにアクセスする方法
- 14. Python boto3フィルタリングRDSタグ
- 15. PHP SDK IAMロールを添付したEC2インスタンスでAWS資格情報を取得できません
- 16. S3バケットポリシーとIAMロールの競合
- 17. ECSタスクのIAMロールを設定することはできますか?
- 18. IAMのロールを使用してs3からcurlでec2からファイルを取得
- 19. AWS APIゲートウェイ用のIAMロールを雲形テンプレートで使用する
- 20. IAMロールを使用するアプリケーションをローカルでテストする
- 21. ロールでAWS-Cognitoのユーザーをフィルタリングする
- 22. IAMを使用してcognito user-sub(userId)に応じてIAMロールを割り当てます。
- 23. IAMロールを使用したSpark EC2スクリプトの実行
- 24. AWS IAMロールでStarClusterを実行する方法
- 25. AWS CodeBuildワーカーでIAMロールを使用する
- 26. rdsを使用したIAMロール:CreateDBClusterSnapshotはクラスタスナップショットを作成できません
- 27. Boto3を使用してAWSのIAMパスワードポリシーをチェックする方法は?
- 28. APIを使用してユーザーにIAMロールを割り当てる
- 29. IAM管理者ロールから403オブジェクトを取得できません。
- 30. Azureのロールとインスタンス
あなたが代わりにそれらをタグ付けして、それを使用する必要があります。 IAMの役割がこのように使用されることは想定されていない可能性があります。また、誰か(またはあなたが誤って)何らかの似たような目的でIAMの役割を使用しようとすると、誤ってインスタンスを終了したときに、予期せぬことをやった。タグは、この方法で使用するためのものです。 – bryan60
インスタンスプロファイルのフィルタリングは理想的ではありませんが、ここではawscliでこれを行う方法を説明します(また、boto3と同等の機能を実現する方法もあります):aws ec2 describe-instances --query "Reservations []。Instances []。 {id:InstanceId、role:IamInstanceProfile.Arn} " – jarmod