セキュリティグループが共有可能になりました。制約や一元管理の利点と注意点を解説します。【2024年10月30日アップデート】

記事タイトルとURLをコピーする

こんにちは。😺
カスタマーサクセス部の山本です。
アップデートの紹介です。

アップデートの概要

公式ニュース

Amazon Virtual Private Cloud が新しいセキュリティグループ共有機能をリリース - AWS

セキュリティグループ VPC アソシエーションを使用して、セキュリティグループを同じアカウントの複数の VPC に関連付けることができるようになりました。共有 VPC を使用する場合、共有セキュリティグループを使用して、セキュリティグループをその共有 VPC の参加者アカウントと共有することもできるようになりました。この機能により、セキュリティグループの一貫性が向上し、管理者の設定とメンテナンスが簡単になります。

要約:
同じアカウント内の複数のVPCで、1つのセキュリティグループを共有できるようになりました。
また、AWS Organizationsを使っている環境では、複数のAWSアカウントでVPCを共有している場合、参加者のAWSアカウントに対してもセキュリティグループを共有できるようになりました。

公式ドキュメントの記載

同じアカウント内で複数のVPCにセキュリティグループを共有する場合と、AWS Organizationsで共有する場合で、それぞれ別々のドキュメントがあります。また、サポートされるAWSサービスも異なります。それぞれ見ていきましょう。

公式ドキュメント1 セキュリティグループを同じ AWS アカウント内の複数の VPC に関連付ける

Associate security groups with multiple VPCs - Amazon Virtual Private Cloud

If you have workloads running in multiple VPCs that share network security requirements, you can use the Security Group VPC Associations feature to associate a security group with multiple VPCs in the same Region. This enables you to manage and maintain security groups in one place for multiple VPCs in your account.

要約:
同じリージョン内で、複数のVPCに共通するネットワークセキュリティ要件がある場合、セキュリティグループを複数のVPCに関連付けることができます。これにより、アカウント内の複数のVPCに対して、セキュリティグループを一元管理できます。

公式ドキュメント2 AWS Organizations とセキュリティグループを共有する

Share security groups with AWS Organizations - Amazon Virtual Private Cloud

イメージ抜粋:

The Shared Security Group feature enables you to share a security group with other AWS Organizations accounts and make the security group available to be used by those accounts.

要約:
共有セキュリティグループ機能により、セキュリティグループをAWS Organizations 内の他のアカウントと共有し、それらのアカウントで利用可能にすることができます。

関連する公式ドキュメント

共有 VPC (共有サブネット)の制約に関する公式ドキュメント:共有サブネットの前提条件 - Amazon Virtual Private Cloud

制約

公式ドキュメントから、制約を抜粋します。

セキュリティグループを同じ AWS アカウント内の複数の VPC に関連付ける場合

  • セキュリティグループは、自アカウントが所有するVPCに関連付けることができます。ただし、VPCとセキュリティグループは同じAWSリージョンになければなりません。
  • デフォルトのセキュリティグループやデフォルトVPCに作成したセキュリティグループは、他のアカウントと共有することはできません。
  • セキュリティグループとVPCの所有者は、それらがどのように関連付けられているかを確認することができます。
  • サポートされているAWSサービスは以下の通りです:
    • Amazon API Gateway (REST APIのみ)
    • AWS Auto Scaling
    • AWS CloudFormation
    • Amazon EC2
    • Amazon EFS
    • Amazon EKS
    • Amazon FSx
    • AWS PrivateLink
    • Amazon Route 53

Amazon RDS や Amazon ECS がこのアップデートのサポート対象サービスに含まれていない点には注意が必要です。

AWS Organizations とセキュリティグループを共有する場合

  • この機能は、AWS Organizations内の同じ組織に属するアカウント間でのみ利用できます。利用するには、AWS Organizationsでリソース共有を有効にする必要があります。
  • セキュリティグループを共有するためには、共有するアカウントがVPCとセキュリティグループの両方を所有している必要があります。
  • デフォルトのセキュリティグループやデフォルトVPC内のセキュリティグループは、共有できません。
  • 参加者アカウントは共有VPC内にセキュリティグループを作成できますが、それらを他のアカウントと共有することはできません。
  • サポートされているAWSサービスは以下の通りです:
    • Amazon API Gateway
    • Amazon EC2
    • Amazon ECS
    • Amazon EFS
    • Amazon EKS
    • Amazon EMR
    • Amazon FSx
    • Amazon ElastiCache
    • AWS Elastic Beanstalk
    • AWS Glue
    • Amazon MQ
    • Amazon SageMaker

Amazon RDSがこのアップデートのサポート対象サービスに含まれていない点には注意が必要です。

検証 セキュリティグループを同じ AWS アカウント内の複数の VPC に関連付ける

セキュリティグループを同じ AWS アカウント内の異なる VPC に関連付け

セキュリティ グループを選択します。 VPC 関連付けタブを選択します。 「VPC の関連付け」を選択します。

[VPC ID]で、セキュリティ グループに関連付ける VPC を選択します。 「VPC の関連付け」を選択します。

関連付けできました。

共有したセキュリティグループを EC2 に付与してみる

EC2インスタンスを作成する際に、関連付けられたVPCを選択すると、前述のセキュリティグループを指定できます。

また、セキュリティグループが共有されている場合、共有元のAWSアカウントでルールを変更すると、当然ながら、共有を受けている側でもその変更が反映されます。 ルールを全て消してみました。

共有したセキュリティグループを ECS サービスに付与できないことの確認

セキュリティグループを同じ AWS アカウント内の複数の VPC に関連付ける機能がサポートされていない ECS では、AWS マネジメントコンソールでサジェストされず、使えません。

検証 AWS Organizations とセキュリティグループを共有する

セキュリティグループを共有

公式ドキュメントの記載に沿ってやってみます。

セキュリティグループの共有を選択します。

[リソース共有の作成]を選択します。

[リソース - オプション]で、[セキュリティ グループ]を選択します。
セキュリティ グループを選択します。

「次へ」を選択します。

プリンシパルが実行できるアクションを確認し、「次へ」を選択します。

[プリンシパル - オプション]で、[組織内でのみ共有を許可する]を選択します。
[プリンシパル]で、次のプリンシパル タイプのいずれかを選択し、適切な番号を入力します。

  • AWS アカウント: 組織内のアカウントのアカウント番号。
  • 組織: AWS Organizations ID。
  • 組織単位 (OU) : 組織内の OU の ID。
  • IAM ロール: IAM ロールの ARN。ロールを作成したアカウントは、このリソース共有を作成するアカウントと同じ組織のメンバーである必要があります。
  • IAM ユーザー: IAM ユーザーの ARN。ユーザーを作成したアカウントは、このリソース共有を作成するアカウントと同じ組織のメンバーである必要があります。

本記事の検証では、「組織構造を表示」を選択して、AWS アカウントを1つ登録しました。

[リソース共有の作成]を選択します。

成功のメッセージが表示されるまで待ちます。

VPC コンソールのセキュリティ グループ リストに戻ります。
共有したセキュリティ グループを選択します。
[共有]タブを選択します。AWS RAM リソースがそこに表示されます。

確認 共有したセキュリティグループの表示

他のAWSアカウントとリソースを共有すると、そのアカウントのVPCコンソールで、共有したセキュリティグループが一覧に表示されます。

確認 共有したセキュリティグループの設定の変更制限

共有されたセキュリティグループは、共有を受けた側のAWSアカウントでは設定を変更できません。
「インバウンドルール」セクションに「インバウンドのルールを編集」ボタンが表示されません。

「アウトバウンドルール」セクションにも「アウトバウンドのルールを編集」ボタンが表示されません。

「VPC を関連づけ」ボタンも存在しません。

共有したセキュリティグループを EC2 に付与してみる

EC2 インスタンスを作成する際に、共有されたサブネットを選択すると、共有されたセキュリティグループをプルダウンメニューから選ぶことができます。

共有されたセキュリティグループを使って、EC2インスタンスを無事に作成できました。

共有したセキュリティグループの削除について

もし共有したセキュリティグループを使用しているEC2インスタンスが存在する場合、そのセキュリティグループは削除できません。共有元のAWSアカウントでそのセキュリティグループを削除しようとすると、エラーが発生します。

共有したセキュリティグループを ECS サービスに付与できることの確認

AWS マネジメントコンソールでサジェストされ、使えます。

共有したセキュリティグループを RDS に付与できないことの確認

Organizations にセキュリティグループを共有する機能がサポートされていない RDS では、共有されたセキュリティグループをプルダウンメニューから選ぶことができませんでした。

考えられるユースケース

同じ設定内容のセキュリティグループを、1つのAWSアカウント内やAWS Organizations環境内で使用する場合、一元管理が可能です。例えば、特定の拠点のIPアドレスからのSSH接続を許可する踏み台サーバー用のセキュリティグループが該当するかと思います。
ただし、セキュリティグループのルールを削除すると、影響が広範囲に及ぶことがあるため、注意が必要です。また、共有した AWS アカウントでのみルールを編集できます。 一元管理は運用の手間を減らしますが、影響を考慮し、必要なセキュリティグループだけを共有するのが良いでしょう。 サポート対象のサービスにも注意が必要です。

余談

最近登山に行ってないので、ネタが尽きてきました。(笑)
いつかの仙ノ倉山の写真です。

山本 哲也 (記事一覧)

カスタマーサクセス部のエンジニア。2024 Japan AWS Top Engineers に選んでもらいました。

今年の目標は Advanced Networking – Specialty と Machine Learning - Specialty を取得することです。

山を走るのが趣味です。今年の目標は 100 km と 100 mile を完走することです。 100 km は Gran Trail みなかみで完走しました。OSJ koumi 100 で 100 mile 砕け散りました。どこかで 100 mile やりたいです。

基本的にのんびりした性格です。座右の銘は「いつか着く」