AWS Organizationsで許可IPリストを共有する
目的
社内のIPアドレスからのみアクセスしたいリソースのセキュリティグループがあります。
IPアドレスの変更や追加に柔軟に適用できるリストを作成するために、プレフィックスリストとRAM(Resource Access Manager)を使用してクロスアカウントでの共通化を実現します。
プレフィックスリストとは
セキュリティグループを使用してAWSのリソースへのアクセスを社内のIPアドレスなどに限定したいとき、複数の拠点やVPNを持つ構成ではIPアドレスをあらかじめリストとして用意しておくと便利です。
IP管理のためにプレフィックスリストを使用することで複数のリソースから1つのリストを参照し、セキュリティグループの管理を効率的に実施することができます。
RAMとは
RAM(Resource Access Manager)は、AWSアカウント間でリソースを共有するためのサービスです。これを利用することで、組織全体で一貫したセキュリティ設定を維持しながら、リソースの効率的な管理と利用が可能になります。特に、複数のアカウントにまたがるリソース管理に便利です。
ハンズオン
今回はプレフィックスリストを作成してRAMで共有するハンズオンで作成したいと思います。
このハンズオンでの前提条件は下記のとおりです。
- AWS Organizationsを利用してすべての機能を有効化していること
- AWS OrganizationsでRAMとの信頼されたアクセスを有効化していること
プレフィックスリスト登録
まず、Organizationsの管理アカウントにプレフィックスリストを登録します。
VPC > マネージドプレフィックスリスト > プレフィックスリストを作成
CIDRブロックを入力します。
作成したプレフィックスリストのIDはこのリストを参照するアカウントに設定するので控えてください。
RAMを使用したリソースの共有
次に、先ほど作成したリソースを他アカウントで参照するためにRAMを設定します。
まずはOrganizationsでRAMの信頼されたアクセスを確認します。
無効になっている場合は有効にしてください。
AWS Organizations > サービス > RAM
リソース共有を作成します。
Resource Access Manager > 自分が共有: リソース共有 > リソース共有を作成
プルダウンからプレフィックスリストを選択して、共有するプレフィックスリストにチェックを入れます。
マネージド型アクセス許可の関連付けは、プレフィックスリストではサポートしておらず編集できないのでスキップします。
プリンシパルにアクセス権限を付与します。
リソースを共有する先は次の中から指定することができます。
プリンシパルタイプ | 書き方 |
---|---|
AWSアカウント | 12 桁の数字 |
Organizations | o-{10-32 characters}. |
組織単位(OU) | ou-{4-32 characters}-{8-32 characters}. |
IAMロール | arn:PARTITION:iam::ACCOUNT-ID:role/ROLE-NAME. |
IAMユーザー | arn:PARTITION:iam::ACCOUNT-ID:user/USER-NAME. |
サービスプリンシパル | service-name.amazonaws.com |
今回は組織内のアカウントすべてに共有します。
アクセス許可を追加して、リソース共有を作成します。
これで他のアカウントからもリソースを参照できるようになりました。
共有されたプレフィックスリストをほかのアカウントのセキュリティグループで参照してみます。
セキュリティグループのソースにマネージドプレフィックスリストのIDを設定します。
セキュリティグループのインバウンドルールにプレフィックスリストを設定することができました。
プレフィックスリストはOrganizationsの共有されたアカウント側からも参照することができます。
まとめ
AWS Organizationsを使用して、社内IPアドレスなどに限定したアクセスを設定するような運用はこのようなプレフィックスリストを使うと変更時に1度の修正で済むので便利ですよね。
RAMについては使い方を知ったのは最近ですが、機会があれば色々と試してみたいです。
RAMの活用方法をご存じの方、ぜひコメントなどいただけますと嬉しいです。
Discussion