[新サービス]でた!AWS Resource Access Manager(RAM)でクロスアカウントのリソース共有が可能に #reinvent

コンニチハ、千葉です。

re:Invent盛り上がってます。

突然現れたAWS Resource Access Manager(RAM)について、お届けします。 (実は、11/21にアップデート情報はキャッチしてましたが、今執筆が終わりました)

AWS Resource Access Manager(RAM)とは?

RAMは、AWSアカウント間のリソース共有するサービスです。まず初めに、Route 53 Resolver Rulesをサポートしていて、今後どんどん対応するリソースが追加されるとのことです。さっそくですが、Transit Gatewayがリソースに追加されています。

また、Route 53 Resolverについてはこちらのブログを。

[新機能]Route53 リゾルバー登場! オンプレミス-VPCの相互名前解決が簡単に実現できるようになりました!

RAMを利用することで煩雑な運用をなくせます。複数アカウントに同じリソースを作成しなくてよくなり、他のアカウントで重複したリソースを作成しなくよてくなります。 めちゃくちゃ画期的です。

こんなイメージです。

今までは、複数組織がからむとIAMポリシーとタグを使って権限管理を頑張っていましたが、権限管理のレイヤにAWSアカウントというレイヤが追加されるイメージでしょうか。親アカウントでリソース作成し、適切なアカウントん共有する、共有されたアカウントでは自分のリソースのように利用できる。IAMだけだと、必要なリソースのみ表示するということが難しかったのですが、こちらを利用すると必要なもののみ表示するってこともできそうです。また、クロスアカウントの設定も煩雑でしたがそちらも軽減されそうです。サイコー。

早く他のリソースの対応が望まれますね!!

やってみた

2つの共有方式

共有するには、2つ方式があります

  • AWSアカウントを個別で指定して、受け側で申請を承認する
  • Organizationsレベルで有効化し、いちいち受け側で承認しなくてもok

どちらでも対応可能です。今回はOrganizationsからRAMを有効化して利用してみました。RAMの画面へ移動しSettingsから有効にします。この操作はOrganizationsのマスターアカウントで実施します。(Organizationsで利用する前提としてOrganizationsにてENABLE ALL FEATURESが有効化されている必要があります。)。

設定はこれだけです。

画面の解説

RAMのコンソールを開くとメニューがありますが、どんなことをやる画面なのか整理しておきます。

Shared by me

  • Resource shares
    • 自分が共有しているリソースを表示
  • Shared resources
    • 自分が共有しているリソース、共有されているリソースすべてを表示します
  • Principals
    • どこに共有しているか表示します(AWSアカウント、OU、Organizations)

Shared with me

  • Resource shares
    • 共有されているリソースを表示します。招待が来ている場合は、ここで承認の操作を行います。
  • Shared resources
    • 自分が共有しているリソース、共有されているリソースすべてを表示します
  • Principals
    • どこに共有しているか表示します(AWSアカウント、OU、Organizations)

Settings

Organizationsレベルでの共有を有効にするか設定します。有効化することで、Organizations内AWSアカウントであれば、受け側で承認せずともリソースを共有できます。

前提作業

自分のアカウントでリソースを作成して、他のアカウントに共有します。サポートされているのがRoute 53 Resolver Rulesなので、こちらを作成しておきましょう。

別アカウントとリソース共有する

先ほど作成したリソースを、Organizations内のアカウントと共有してみます。

RAMのコンソールから、リソース作成をクリックします。

リソースタイプを選択しますが、現在対応しているのがResolver Rulesなので、こちらを選択します。

共有先を指定します。o-から始まる Organizations ID、ou- から始まる OU ID、12桁のAWS アカウントIDを指定することができます。

共有された側から見てみる

どんな感じで共有されているか見てみましょう。

共有された側のRoute53を見てみましたが、ローカルリソースと同じように見えました!!

最後に

RAMは、今までなかった概念で、まったく新しいサービです。アカウント間でリソースを共有することで、複数のAWSアカウントで煩雑になってきた運用が、ものすごーくシンプルに構成できる未来が待ってそうです。利用していて辛い部分を、このような形でどんどん便利なアップデートがあるのは、本当に素敵です。顧客ファースト最高!!

参考