Enterprise Distributed Application Service(EDAS)でアプリケーションとクラスターにタグを追加した後、タグを使用してこれらのアプリケーションとクラスターへのアクセス制御を実装できます。このトピックでは、Resource Access Management(RAM)ポリシーを RAM ユーザーにアタッチし、タグを使用してリソースに対する権限を管理する方法について説明します。この例では、アプリケーションが使用されます。
前提条件
アプリケーションが EDAS にデプロイされています。詳細については、以下のトピックを参照してください。
Kubernetes クラスター: アプリケーションを作成してデプロイする
Elastic Compute Service(ECS)クラスター: アプリケーションを作成してデプロイする (ECS)
タグがアプリケーションに追加されています。詳細については、「タグを使用してリソースをフィルタリングする」を参照してください。
背景情報
Alibaba Cloud は、ポリシーベースのアクセス制御を実装しています。 RAM ユーザーのロールに基づいて RAM ポリシーを設定できます。各ポリシーで複数のタグを定義し、1 つ以上のポリシーを RAM ユーザーまたは RAM ユーザーグループにアタッチできます。 RAM ユーザーがアクセスできるリソースを決定する場合は、カスタムポリシーを作成し、ポリシーでタグを指定できます。
タグを使用してアクセス制御を実装する場合は、EDAS の権限制御システムではなく RAM を使用する必要があります。権限制御の詳細については、「権限管理」をご参照ください。
この例では、3 つのアプリケーションが EDAS にデプロイされています。アプリケーションは異なる環境にデプロイされ、異なるプロジェクトを対象としています。したがって、これらのアプリケーションには次のタグが追加されます。
app-001:
Environment=TEST //テスト環境
Team=team1 //プロジェクト 1
app-002:
Environment=DEV //開発環境
Team=team1 //プロジェクト 1
app-003:
Environment=PROD //本番環境
Team=team2 //プロジェクト 2
この例では、ユーザー 1、ユーザー 2、ユーザー 3 の 3 人の RAM ユーザーが作成されます。最小権限の原則に基づいて、RAM ユーザーにリソースに対する異なる権限を付与できます。たとえば、次のポリシーに基づいて RAM ユーザーに権限を付与できます。
ユーザー 1 に、開発環境とテスト環境のすべてのアプリケーションを管理する権限を付与します。
ユーザー 2 に、テスト環境のプロジェクト 1 のすべてのアプリケーションを管理する権限を付与します。
ユーザー 3 に、本番環境のアプリケーションを除くすべてのアプリケーションを管理する権限を付与します。
上記の要件を満たすために、カスタムポリシーを作成し、ポリシーでタグを指定できます。
タグを含むカスタムポリシーを作成する
管理権限を持つ RAM ユーザーとして RAM コンソール にログオンします。
左側のナビゲーションペインで、 を選択します。
[ポリシー] ページで、[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[JSON] タブをクリックします。
コードエディターで、カスタムポリシーを入力し、[ポリシー情報の編集に進む] をクリックします。
次の例は、上記の要件を満たすポリシーの 3 つのコードブロックを示しています。
ユーザー 1 に、開発環境とテスト環境のすべてのアプリケーションを管理する権限を付与します。
{ "Statement": [ { "Action": "edas:ManageApplication", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "edas:tag/Environment": ["DEV", "TEST"] // 環境を指定 } } } ], "Version": "1" }
ユーザー 2 に、テスト環境のプロジェクト 1 のすべてのアプリケーションを管理する権限を付与します。
{ "Statement": [ { "Action": "edas:ManageApplication", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "edas:tag/Team": ["team1"], // チームを指定 "edas:tag/Environment": ["TEST"] // 環境を指定 } } } ], "Version": "1" }
ユーザー 3 に、本番環境のアプリケーションを除くすべてのアプリケーションを管理する権限を付与します。
{ "Statement": [ { "Action": "edas:ReadApplication", "Effect": "Allow", "Resource": "*" }, { "Action": "edas:ReadApplication", "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "edas:tag/Environment": ["PROD"] // 環境を指定 } } } ], "Version": "1" }
ポリシーの [名前] と [説明] パラメーターを構成し、[ポリシードキュメント] セクションでポリシーの内容を確認し、[OK] をクリックします。
カスタムポリシーが作成されると、ポリシーはポリシーリストに表示されます。
カスタムポリシーを RAM ユーザーにアタッチする
Alibaba Cloud アカウントで RAM コンソール にログオンします。
左側のナビゲーションペインで、 を選択します。
[ユーザー] ページで、管理する RAM ユーザーを見つけ、権限の追加[アクション] 列の をクリックします。
[権限の追加] パネルで、[alibaba Cloudアカウント] を [承認スコープ] として選択します。
[権限の追加] パネルの カスタム ポリシー[ポリシーの選択] セクションで、OK をクリックします。次に、作成したカスタムポリシーを検索し、ポリシーを選択して、 をクリックします。
[権限の追加] パネルで、認可情報を確認し、[完了] をクリックします。
RAM ユーザーとしてリソースにアクセスする
RAM ユーザーとして EDAS コンソールにログオンし、期待どおりにリソースにアクセスできるかどうかを確認します。