セキュリティグループ情報を取得するためにすべてのAWSリージョンを反復処理する方法

ニシャント・シン

提供したAWSリージョンのリストを繰り返すことができず、リストが逆の順序で開始されている理由がわかりません。

このコードは基本的にすべてのawsリージョンを1つずつ接続し、セキュリティグループの詳細を出力します。

regions = ['us-east-1','us-west-1','us-west-2','eu-west-1','sa-east-1','ap-southeast-1','ap-southeast-2','ap-northeast-1']
for region in regions:
  connection=ec2.connect_to_region(region)
  sg.extend(connection.get_all_security_groups())


def getTag(instanceId):

    reservations=connection.get_all_instances(filters={'instance_id':instanceId})
    for res in reservations:
        for instance in res.instances:
            return instance.tags['Name'],instance.private_ip_address,instance.region

try:

    for securityGroup in sg:
       for rule in securityGroup.rules:
           global instanceId;
           if rule.to_port == '22'  and '0.0.0.0/0' in str(rule.grants):
                for instanceid in securityGroup.instances():
                   instanceId=str(instanceid)
                   print "Port 22 is open for 0.0.0.0/0:, SecurityGroupName: %s  Instance Details --> : %s " %(securityGroup.name,  getTag(instanceId.split(':')[1]))

回答に基づいて、インスタンスの詳細を取得できなくなりました。結果は次のとおりです。

Port 22 is open for 0.0.0.0/0:, SecurityGroupName: interview-linux  Instance Details --> : None 
Port 22 is open for 0.0.0.0/0:, SecurityGroupName: interview-linux  Instance Details --> : None 
Port 22 is open for 0.0.0.0/0:, SecurityGroupName: launch-wizard-mingjun  Instance Details --> : None 
Port 22 is open for 0.0.0.0/0:, SecurityGroupName: SSH+HTTPS  Instance Details --> : None 
Port 22 is open for 0.0.0.0/0:, SecurityGroupName: temp-engg-logi  Instance Details --> : None 
Port 22 is open for 0.0.0.0/0:, SecurityGroupName: na-prod-1w-secgroup  Instance Details --> : None 
Port 22 is open for 0.0.0.0/0:, SecurityGroupName: na-prod-1w-secgroup  Instance Details --> : None 
Port 22 is open for 0.0.0.0/0:, SecurityGroupName: na-trial-1w-secgroup  Instance Details --> : None 
Port 22 is open for 0.0.0.0/0:, SecurityGroupName: na-trial-1w-secgroup  Instance Details --> : Non
ムハンマド・タヒル

for region in regions:ループ内ではsg、各反復で上書きているためですあなたがおそらく欲しいのは

sg = list()
for region in regions:
  connection=ec2.connect_to_region(region)
  sg.extend(connection.get_all_security_groups())

編集:(インスタンスの詳細->:なし)

ここでの問題は、あなたが上書きされて、私は前述のループでは、connectionあまりにすなわちconnection=ec2.connect_to_region(region)

したがってconnection.get_all_instances(filters={'instance_id':instanceId})getTagメソッドで行う場合instanceId、最後の領域、つまりでのみ検索されますap-northeast-1インスタンスはこのリージョンに属していないため、を取得しNoneます。

コードを次のようなものに並べ替える必要があります

def getTag(connection, instanceId):
    reservations=connection.get_all_instances(filters={'instance_id':instanceId})
    for res in reservations:
        for instance in res.instances:
            return instance.tags['Name'],instance.private_ip_address,instance.region

regions = ['us-east-1','us-west-1','us-west-2','eu-west-1','sa-east-1','ap-southeast-1','ap-southeast-2','ap-northeast-1']
for region in regions:
    connection=ec2.connect_to_region(region)
    sg = connection.get_all_security_groups()
    try:
        for securityGroup in sg:
           for rule in securityGroup.rules:
               if rule.to_port == '22'  and '0.0.0.0/0' in str(rule.grants):
                   for instanceid in securityGroup.instances():
                       instanceId=str(instanceid)
                       print "Port 22 is open for 0.0.0.0/0:, SecurityGroupName: %s  Instance Details --> : %s " %(securityGroup.name,  getTag(connection, instanceId.split(':')[1]))

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

reactJSを使用してフィルター処理された検索テーブルを作成する方法。テーブル内の情報をフィルタリングするために検索バーを取得しようとしています

分類Dev

AWSセキュリティグループ内の他のAWSリージョンからのポートアクセスを無効にする方法

分類Dev

リストのディクショナリを反復処理し、各反復をすべてのキーのアイテムとペアリングするにはどうすればよいですか?

分類Dev

すべてのAWSセキュリティグループの未使用のセキュリティグループを見つける方法は?

分類Dev

VPCとそのすべてのインスタンスにAWSセキュリティグループへのアクセスを許可する方法

分類Dev

AWS認証情報プロバイダーからセキュリティトークンを取得する

分類Dev

春のセキュリティ反応-「無効な資格情報」エラーをデバッグする方法?

分類Dev

マルチプロセッシングキューを反復処理する

分類Dev

セグメンテーション違反の原因となるリンクを反復処理する

分類Dev

BeautifulSoup:タグ値のスープテキストを取得する方法は?そして、URLのリストを反復処理する方法は?

分類Dev

セレン:元素のグループを反復処理する

分類Dev

セキュリティを念頭に置いてAngularページの更新を処理する方法

分類Dev

Spring Boot2.2.6-セキュリティ| ユーザー情報を更新した後にプリンシパルを更新する方法

分類Dev

アセンブリのすべての列挙型を反復処理するときにDisplayAttributeを取得する

分類Dev

グループセキュリティのためにFirebaseStorageにトークンを追加する

分類Dev

Railsで反復的なタスク(情報のためにページをスクレイピングするなど)をスケジュールして実行するための最良の方法は何ですか?

分類Dev

異なるキーにマップされた増分日付期間を取得するためにPythonリストを反復処理する方法

分類Dev

リンクを反復処理するためにforループを使用するJSpuppeteer

分類Dev

クライアント側のスクリプトを使用せずにサーバーにページID情報を送信するためのフォームを処理するWebクライアントを取得する方法

分類Dev

AngularJSフィルターを使用したデータのフィルタリング。オブジェクトを反復処理する方法は?

分類Dev

キーワードを使用してテーブルをフィルタリングし、その情報行にアクセスする方法

分類Dev

すべてのトラフィックに着信するすべてのセキュリティグループを0.0.0.0にする方法

分類Dev

data.table参照セマンティクス:すべての列を反復処理するためのメモリ使用量

分類Dev

Rの適用ファミリを使用してループなしでラスターファイルを処理するためにディレクトリを反復処理する方法

分類Dev

特定の子の値を取得するために、すべてのキーを反復処理するにはどうすればよいですか?

分類Dev

WPF C# リフレクション: ビルド アクション "ページ" ですべてのリソースを反復処理する

分類Dev

ディープラーニングYOLOオブジェクト検出:画像上に定義されたグリッド内のセルを反復処理する方法

分類Dev

WebサイトからWebページのリンクを取得し、それらのリンクを反復処理して詳細情報を取得します

分類Dev

セキュリティグループを更新するためにCloudformation / lambdaを介してSNSメッセージを送信する

Related 関連記事

  1. 1

    reactJSを使用してフィルター処理された検索テーブルを作成する方法。テーブル内の情報をフィルタリングするために検索バーを取得しようとしています

  2. 2

    AWSセキュリティグループ内の他のAWSリージョンからのポートアクセスを無効にする方法

  3. 3

    リストのディクショナリを反復処理し、各反復をすべてのキーのアイテムとペアリングするにはどうすればよいですか?

  4. 4

    すべてのAWSセキュリティグループの未使用のセキュリティグループを見つける方法は?

  5. 5

    VPCとそのすべてのインスタンスにAWSセキュリティグループへのアクセスを許可する方法

  6. 6

    AWS認証情報プロバイダーからセキュリティトークンを取得する

  7. 7

    春のセキュリティ反応-「無効な資格情報」エラーをデバッグする方法?

  8. 8

    マルチプロセッシングキューを反復処理する

  9. 9

    セグメンテーション違反の原因となるリンクを反復処理する

  10. 10

    BeautifulSoup:タグ値のスープテキストを取得する方法は?そして、URLのリストを反復処理する方法は?

  11. 11

    セレン:元素のグループを反復処理する

  12. 12

    セキュリティを念頭に置いてAngularページの更新を処理する方法

  13. 13

    Spring Boot2.2.6-セキュリティ| ユーザー情報を更新した後にプリンシパルを更新する方法

  14. 14

    アセンブリのすべての列挙型を反復処理するときにDisplayAttributeを取得する

  15. 15

    グループセキュリティのためにFirebaseStorageにトークンを追加する

  16. 16

    Railsで反復的なタスク(情報のためにページをスクレイピングするなど)をスケジュールして実行するための最良の方法は何ですか?

  17. 17

    異なるキーにマップされた増分日付期間を取得するためにPythonリストを反復処理する方法

  18. 18

    リンクを反復処理するためにforループを使用するJSpuppeteer

  19. 19

    クライアント側のスクリプトを使用せずにサーバーにページID情報を送信するためのフォームを処理するWebクライアントを取得する方法

  20. 20

    AngularJSフィルターを使用したデータのフィルタリング。オブジェクトを反復処理する方法は?

  21. 21

    キーワードを使用してテーブルをフィルタリングし、その情報行にアクセスする方法

  22. 22

    すべてのトラフィックに着信するすべてのセキュリティグループを0.0.0.0にする方法

  23. 23

    data.table参照セマンティクス:すべての列を反復処理するためのメモリ使用量

  24. 24

    Rの適用ファミリを使用してループなしでラスターファイルを処理するためにディレクトリを反復処理する方法

  25. 25

    特定の子の値を取得するために、すべてのキーを反復処理するにはどうすればよいですか?

  26. 26

    WPF C# リフレクション: ビルド アクション "ページ" ですべてのリソースを反復処理する

  27. 27

    ディープラーニングYOLOオブジェクト検出:画像上に定義されたグリッド内のセルを反復処理する方法

  28. 28

    WebサイトからWebページのリンクを取得し、それらのリンクを反復処理して詳細情報を取得します

  29. 29

    セキュリティグループを更新するためにCloudformation / lambdaを介してSNSメッセージを送信する

ホットタグ

アーカイブ