環境固有のタグ、アプリケーションタグ、リソースタイプのタグなどのタグをElastic Compute Service (ECS) リソースに追加して、きめ細かい管理を行うことができます。 特定のタグが追加されたECSインスタンスをフィルタリングしてCloud Assistantコマンドを実行したり、Cloud Assistantを使用してファイルをアップロードしたりする場合は、タグが指定されているポリシーをResource Access Management (RAM) ユーザーにアタッチします。 これにより、RAMユーザーはCloud Assistantを使用して、タグが追加されたECSインスタンスでコマンドを実行したり、ファイルをアップロードしたり、インスタンスへのアクセスを管理したりできます。 このトピックでは、タグを使用してCloud Assistantコマンドの使用を管理する方法について説明します。
前提条件
RAM ユーザーを作成します。 RAMユーザーの作成方法については、「RAMユーザーの作成」をご参照ください。
Cloud Assistantコマンドが作成されます。 Cloud Assistantコマンドの作成方法については、「コマンドの作成」をご参照ください。
働くメカニズム
ポリシーでタグを一致条件として指定し、RAMユーザーと組み合わせてタグを使用して、ECSリソースをきめ細かく管理できます。
各タグはキーと値で構成されています。 タグを使用して、ECSインスタンスにラベルを付け、リソースを分類および管理できます。 タグの詳細については、「概要」をご参照ください。
RAMを使用すると、ポリシーに基づいてリソースに対するユーザーID、リソースアクセス、操作権限を管理できます。 リージョン、ECSインスタンス、実行する操作、およびCloud Assistantコマンドに基づいて、カスタムポリシーを定義できます。 RAMユーザーにカスタムポリシーをアタッチして、Cloud Assistantコマンドを使用するRAMユーザーの権限を管理できます。 詳細については、「RAMユーザーの概要」および「ポリシーの概要」をご参照ください。
タグを使用してRAMユーザーのリソースアクセスと操作権限を管理する方法を次の図に示します。これはタグベースの認証と呼ばれます。
サンプルシナリオ
このセクションでは、タグベースの認証を実装して、次のシナリオでCloud Assistantコマンドを管理する方法について説明します。
RAMユーザーは、特定のタグが追加されたECSインスタンスでのみコマンドを実行できます。 タグの例: test:tony。
RAMユーザーは、特定のタグが追加されたECSインスタンスにのみファイルを送信できます。 タグの例: test:tony。
RAMユーザーは、タグ、ECSインスタンス、Cloud Assistantコマンド、およびコマンドの実行結果を照会できます。
手順
この例では、Alibaba Cloudアカウントを使用して、UseTagAccessResources
という名前のカスタムポリシーを作成し、そのカスタムポリシーをRAMユーザーにアタッチします。 UseTagAccessResources
カスタムポリシーを使用すると、RAMユーザーはCloud Assistantを使用して、test:tony
タグが追加されたECSインスタンスでコマンドを実行したり、ファイルを送信したりできます。
特定のタグが追加されたECSインスタンスを作成します。
この例では、
test:tony
タグが追加されたECSインスタンスが作成されます。 詳細については、「特定のタグを持つリソースの作成」をご参照ください。にログインします。RAMコンソールAlibaba Cloudアカウントを使用します。
作成します。Create the
UseTagAccessResources
カスタムポリシー。詳細については、「カスタムポリシーの作成」をご参照ください。
カスタムポリシーのCondition要素で複数のタグベースの認証条件を設定して、ECSリソースに対する権限を制限できます。 サポートされているタグベースの認証条件を次の表に示します。
タグベースの認証条件
説明
acs:RequestTag
特定のタグ関連パラメーターを各APIリクエストに含める必要があることを指定しました。
APIリクエストにタグ関連のパラメーターが含まれていない場合、
acs:RequestTag
条件は使用できず、認証は失敗します。acs:ResourceTag
特定のタグをリソースに追加する必要があることを指定します。
APIリクエストにリソースIDが含まれていない場合、
acs:ResourceTag
条件は使用できず、認証は失敗します。{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:InvokeCommand", "ecs:RunCommand", "ecs:StopInvocation", "ecs:SendFile" ], "Resource": "acs:ecs:*:*:instance/*", "Condition": { "StringEquals": { "acs:ResourceTag/test": "tony" } } }, { "Effect": "Allow", "Action": [ "ecs:InvokeCommand", "ecs:RunCommand", "ecs:StopInvocation", "ecs:SendFile" ], "Resource": "acs:ecs:*:*:command/*" }, { "Effect": "Allow", "Action": [ "ecs:DescribeTag*", "ecs:DescribeInstance*", "ecs:DescribeCommands", "ecs:CreateCommand", "ecs:DeleteCommand", "ecs:ModifyCommand", "ecs:DescribeInvocationResults", "ecs:DescribeSendFileResults", "ecs:DescribeInstances", "ecs:DescribeCloudAssistantStatus", "ecs:DescribeInvocations", "ecs:DescribeResourceByTags", "ecs:DescribeTagKeys", "ecs:DescribeTags", "ecs:ListTagResources", "ecs:DescribeManagedInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": "oos:ListSecretParameters", "Resource": "*" } ] }
上記のポリシーは、RAMユーザーに次の権限を付与します。
test:tony
タグが追加されたECSインスタンスでCloud Assistantコマンドを実行するか、ファイルを送信します。 サンプルポリシー:{ "Effect": "Allow", "Action": [ "ecs:InvokeCommand", "ecs:RunCommand", "ecs:StopInvocation", "ecs:SendFile" ], "Resource": "acs:ecs:*:*:instance/*", "Condition": { "StringEquals": { "acs:ResourceTag/test": "tony" } } }, { "Effect": "Allow", "Action": [ "ecs:InvokeCommand", "ecs:RunCommand", "ecs:StopInvocation", "ecs:SendFile" ], "Resource": "acs:ecs:*:*:command/*" }
タグ、ECSインスタンス、Cloud Assistantコマンドなどのリソースを照会します。 サンプルポリシー:
{ "Effect": "Allow", "Action": [ "ecs:DescribeTag*", "ecs:DescribeInstance*", "ecs:DescribeCommands", "ecs:CreateCommand", "ecs:DeleteCommand", "ecs:ModifyCommand", "ecs:DescribeInvocationResults", "ecs:DescribeSendFileResults", "ecs:DescribeInstances", "ecs:DescribeCloudAssistantStatus", "ecs:DescribeInvocations", "ecs:DescribeResourceByTags", "ecs:DescribeTagKeys", "ecs:DescribeTags", "ecs:ListTagResources", "ecs:DescribeManagedInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": "oos:ListSecretParameters", "Resource": "*" }
をアタッチします。
UseTagAccessResources
アクセスを管理するRAMユーザーに対するカスタムポリシー。詳細については、「RAMロールへの権限の付与」をご参照ください。
カスタムポリシーが有効かどうかを確認します。
ECSコンソールにログインし、ECSインスタンスに対して次の操作を実行します。
説明システムがクラウドアシスタントコマンドを実行するか、ECSインスタンスにファイルを送信すると、システムは特定のタグ、タグが追加されたECSインスタンス、および特定のタグが関連付けられているクラウドアシスタントコマンドを同時に照会できます。
test:tonyタグが追加されたECSインスタンスと、他のタグが追加されたECSインスタンスでCloud Assistantコマンドを実行します。
ECS Cloud Assistantページの [マイコマンド] タブで、Cloud Assistantコマンドを見つけ、[操作] 列の [実行] をクリックして、test:tonyタグが追加されたECSインスタンスと他のタグが追加されたECSインスタンスでコマンドを実行します。 この例では、IDが
c-hz02jt1ncrf ****
のコマンドが使用されます。 詳細については、「コマンドの実行」をご参照ください。説明[マイコマンド] タブにCloud Assistantコマンドが存在しない場合は、Cloud Assistantコマンドを作成して上記の手順を実行します。 詳細については、「コマンドの作成」をご参照ください。
test:tonyタグが追加されたECSインスタンスと、他のタグが追加されたECSインスタンスにファイルを送信します。
ECSクラウドアシスタントページの右上隅にある [ファイルの送信] をクリックして、test:tonyタグが追加されたECSインスタンスと他のタグが追加されたECSインスタンスにファイルを送信します。 詳細については、「オンプレミスファイルのECSインスタンスへのアップロード」をご参照ください。
コマンドタスクまたはファイル送信タスクの実行結果が、このトピックの [実行結果] セクションに記載されている実行結果と一致する場合、カスタムポリシーが有効になります。 コマンドタスクまたはファイル送信タスクの実行結果が, [実行結果] セクションに記載されている実行結果と一致しない場合, カスタムポリシーは有効になりません。 問題のトラブルシューティングについては、このトピックのFAQセクションを参照してください。
実行結果
次のセクションでは、カスタムポリシーが有効な場合にECSインスタンスでCloud Assistantコマンドを実行するタスクの実行結果について説明します。
test:tony
タグが追加されたECSインスタンスでコマンドを実行すると、コマンドタスクに対応する [ステータス] 列に成功が表示されます。test:tony
タグが追加されていないECSインスタンスでコマンドを実行すると、コマンドの実行に失敗したことを示すエラーメッセージが表示されます。
次のセクションでは、カスタムポリシーが有効な場合にECSインスタンスにファイルを送信するタスクの実行結果について説明します。
test:tony
タグが追加されたECSインスタンスにファイルが送信されると、ファイル送信タスクに対応する [ステータス] 列に成功が表示されます。test:tony
タグが追加されていないECSインスタンスにファイルが送信されると、ファイルの送信に失敗したことを示すメッセージが表示されます。
よくある質問
カスタムポリシーが有効にならない場合はどうすればよいですか?
RAMユーザーにアタッチしたカスタムポリシーが有効にならない場合は、RAMユーザーにアタッチされている他のポリシーのアクション要素の次のパラメーターに対して、effect要素がAllowに設定されているかどうかを確認します。 RAMユーザーにアタッチされている他のポリシーのAction要素の次のパラメーターに対して、Effect要素がAllowに設定されている場合は、RAMユーザーからポリシーをデタッチします。
ecs:InvokeCommand
ecs:RunCommand
ecs:StopInvocation
ecs:SendFile
たとえば、次のカスタムポリシーがRAMユーザーにアタッチされている場合、RAMユーザーからポリシーをデタッチします。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:InvokeCommand",
"ecs:RunCommand",
"ecs:StopInvocation",
"ecs:SendFile"
],
"Resource": "*"
}
]
}
関連ドキュメント
RAMユーザーに特定のポリシーをアタッチして、RAMユーザーがタグを使用してECSインスタンスへのアクセスを管理できるようにすることができます。 詳細については、「タグを使用したリソースへのアクセスの制御」をご参照ください。
複数のECSインスタンスに同じタグを追加し、CloudMonitorのスマートタグ同期機能を使用して、グループベースの自動モニタリングのためにインスタンスを同じアプリケーショングループに割り当てることができます。 モニタリングメトリックには、ECSインスタンスのヘルスステータス、CPU使用率、メモリ使用量が含まれます。 詳細については、「タグに基づくグループ別の自動リソースモニタリングの実装」をご参照ください。
リソースの管理と取得にタグを使用しなくなった場合は、リソースからタグを削除できます。 詳細については、「タグの削除」をご参照ください。