今年も盛り上がりましたね。対応あたりが興味深いと思いましたが、本記事では既存サービスについて書きます。ロールベースのアクセス制御機能が追加されました。構築した上で簡単なデモを動かしてみます。デモの仕様こんな感じのものを作ってみました。実装してみました!デプロイ済みのデモはこちらです。そのコードはこちらです。いうユーザーでログインできます。置かれたオブジェクトの内容が見られます。パースして表示しています。ログインした場合はこの内容を編集して更新できます。ページでは、現在払い出されているロールを確認できます。ログイン前とログイン後、そしてログインしているユーザーによって異なるロールが払い出されていることを確認できると思います。一式をデプロイすることにしました。リソースを並べていきます。500行超えるやつは大体友達。各リソースについて、この要件に必要な部分をざらっとおさらいします。いうカスタム属性を追加しました。デフォルトの属性を使ってロール割り当てを切り替えることも可能です。IdentityPool特になし。ハイフンを含めないのが地味に不便です。CognitoUserAuthenticatedPolicyコンソールからポチポチして作ると付けられるポリシーを元に作ってます。いう分け方ではなく、差分を追加していくという方法で分けてみました。AuthenticatedRoleこれもコンソールポチポチロールを元に作ってます。複雑なのでがんばりましょう。アクセス権限などは一切追加しません(重要)。アクセス権をこちらで定義しました。これらが今回のデモでログインした時に払い出されます。EditorRoleも紐付けたいのですが、そうしていません。いう形式)をどうやってもハードコードする必要が生じてしまうからです。この問題はフォーラムでも話題に上がっています。RoleMappings?IdentityPoolRoleMappingというわけで、上の問題を無理矢理に解決するためのカスタムリソースです。地味にハマリポイント。ドメイン名で...ができて便利そうなのですが。CloudFormationBucketユーザーが編集できるオブジェクトの他に、今回はデモそれ自体の動作に必要なファイルもここに置きます。