Amazon Web Services (AWS) Session Tags を使用すると、リソースにタグを付け、ユーザーにキーと値のペアを割り当てることで、AWS API とリソースに対するロールベースのアクセス制御 (RBAC) を実装できます。
このガイドの例では、まず AWS Session Tags を使って AWS リソースにタグを付け、その後、AWS IAM ロール用のポリシーを作成します。これにより、このロールと適切なタグを持つユーザーは、AWS リソースに対して特定のアクションを実行できるようになります。次に、Auth0 でルールを作成し、Auth0 ユーザーに AWS IAM ロールと適切な AWS Session Tags を付与して、それらをトークン内の アサーションを通じて渡します。この例は、Amazon Web Services をシングルサインオン用に設定する の例を基にしています。
AWS API とリソースで AWS Session Tags を使用するには、次の手順が必要です。
- AWS インスタンスにタグを付ける。
- 専用の AWS IAM ロールを作成する。
- Auth0 ルールを作成する。
- 設定をテストする。
AWS リソースにタグを追加します。Amazon Elastic Compute Cloud: Tag your Amazon EC2 resources の手順に従ってください。
ここまでで 3 つのインスタンスを作成しているはずです。次のタグを追加してください。
前提条件で設定した AWS SAML を使用して IAMロールを作成します。AWS Identity and Access Management User Guide: Creating a Role for SAML 2.0 Federation (Console) の手順に従ってください。
ロールを設定する際は、必ず次のパラメータを使用してください。
Attach permissions policies を求められたら、次の JSON を使用してポリシーを作成し、VirtualMachineAccessByCostCenter という名前を付けます。
ポリシーを作成したら、ロールのポリシー一覧を更新し、新しいポリシーを絞り込んで選択します。
設定を確認する際は、必ず次のパラメータを使用してください。
AWS のロールとタグをユーザーに対応付けるには、Auth0 でルールを作成する必要があります。これらの値は、その後トークン内の SAML アサーションを介して渡されます。例:
awsAccount 変数の値は、ご自身のアカウント番号に置き換えてください。
これで、Auth0 ユーザーを使用して AWS コンソールにログインし、設定をテストできるはずです。
ログインするには、AWS コンソールの ログインが必要です。確認方法は次のとおりです。
- Auth0 Dashboard > アプリケーション > アプリケーション に移動し、表示するアプリケーションの名前を選択します。
- アドオン タブで、SAML2 Web App アドオンを有効にします。
- 使用状況 タブで、Identity Provider Login URL を確認します。
- 表示された URL にアクセスします。
- サインイン後、EC2 から Instances を選択します。
CostCenter が marketing のインスタンスを1つクリックし、Actions > Instance State > Stop をクリックします。操作が正常に完了することを確認します。
CostCenter が engineering のインスタンスをクリックし、Actions > Instance State > Stop をクリックします。操作がエラーで失敗することを確認します。