AWSアカウントを跨いで S3 などを共有する

リソースベースポリシーのクロスアカウントアクセスを設定することで対応が可能。

一部の AWS サービスでは、リソースに対するクロスアカウントアクセス許可を付与することができる。

クロスアカウントの理論についてはこちら

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html

これを行うには、プロキシとしてロールを使用するのではなく、

共有するリソースに直接ポリシーをアタッチすることになる。

共有するリソースは、リソースベースのポリシーをサポートしている必要がある。

なお、リソースベースポリシーが有効になっているサービスは

  • S3
  • SNS
  • SQS

のみ。

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_compare-resource-policies.html

ユーザーベースのポリシーとの違い

端的に言うと、ユーザーに割り当てるのではなく、サービスに割り当てるもの。

リソースベースポリシーは Principal が必須となる。

公式のスライドはこちら

https://www.slideshare.net/AmazonWebServicesJapan/20150617-aws-blackbeltiam

公式ドキュメントはちょっと難解なので、Classmethod さんの記事が非常にわかりやすく噛み砕かれていた。

https://dev.classmethod.jp/articles/aws-iam-policy/