役割を使用したアクセスの制御
SDKを使用して、ユーザとAPIキーの権限を制御する役割を作成および設定します。たとえば、Workload Securityの自動配信プロセスの一環として、ユーザが実行するタスクやAPIを使用して実行するタスクに適したさまざまな役割をコードで作成できます。
役割では、ユーザまたは自分のコードでタスクを実行するために必要な最小限の権限を付与する必要があります。
役割の詳細については、「ユーザの役割の定義」を参照してください。
次のクラスを使用すると、役割と対話できます。
AdministratorRolesApi
: ロールを作成、変更、削除、検索、説明、および一覧表示します。Role
: 役割を表し、役割のプロパティへのアクセスを提供します。Rights
classes: Workload Securityリソースへのアクセス権を表すいくつかのクラスです。たとえば、ComputerRights
はコンピュータとのやりとりのための権限を定義し、ScheduledTaskRights
は予約タスクとの対話のための権限を定義します。
役割IDを取得も参照してください。
一般的な手順
次の一般的な手順を使用して、役割を作成または変更します。
-
Role
オブジェクトを作成し、プロパティを設定します。- 役割を識別するための名前を入力し、必要に応じて説明を入力します。
- 必要に応じて、役割がアクセスできるコンピュータとポリシーを指定します。
- 必要に応じて、コンピュータ上で役割が実行できるタスクと、アクセスできるポリシーを指定する権限オブジェクトを追加します。
-
AdministratorsRoleApi
オブジェクトを作成し、Workload Securityで役割を作成または変更するために使用します。
役割を作成すると、初期設定ではすべてのコンピュータとポリシーに対する読み取りアクセス権が付与され、ユーザは自分のパスワードを変更できるようになり、 Workload Security コンソールへのアクセスが許可されます。
次のJSONは、 Role
オブジェクトのデータ構造の例を表しています。データ構造は、役割のアクセス権を設定する方法を理解するのに役立ちます。
allComputers
およびallPolicies
の項目は、すべてのコンピュータとポリシーへのアクセスを制御します。false
,computerIDs
およびpolicyIDs
のいずれかの項目には、アクセス可能なコンピュータおよびポリシーのIDが保持されます。rights
アイテムとその子孫は、Workload Securityリソースへのアクセス権を定義するさまざまな権利クラスに対応しています。この例を簡潔にするために、権利項目の深いレベルは表示されません。
{
"name": "Auditor",
"description": "",
"urn": "urn:tmds:identity:us-east-ds-1:41342:role/Auditor",
"immutable": false,
"canOnlyManipulateUsersWithEqualOrLesserRights": false,
"allComputers": true,
"allPolicies": true,
"allowUserInterface": true,
"allowWebService": true,
"rights": {
"platformRights": {...},
"antiMalwareRights": {...},
"webReputationRights": {...},
"firewallRights": {...},
"intrusionPreventionRights": {...},
"integrityMonitoringRights": {...},
"logInspectionRights": {...},
"applicationControlRights": {...},
"hostedServiceRights": {...}
},
"ID": 2
}
Role
オブジェクトの完全なデータ構造を確認するには、APIリファレンスの Describe an Administrator Role 操作のレスポンスを参照してください。
次の例では、Roleオブジェクトを作成し、名前を設定します。
run_reports_role = api.Role()
run_reports_role.name = "Computer Status and Properties"
ComputerRights
オブジェクトを使用してコンピュータへのアクセス権を指定し、そのオブジェクトを使用して PlatformRights
オブジェクトを設定します。 PlatformRights
オブジェクトは、前のJSONコードの platformRights
データ項目に対応します。
computer_rights = api.ComputerRights()
computer_rights.can_edit_computer_properties = True
platform_rights = api.PlatformRights()
platform_rights.computer_rights = computer_rights
プラットフォーム権限を Rights
オブジェクトに追加し、 Rights
オブジェクトを役割に追加します。
rights = api.Rights()
rights.platform_rights = platform_rights
run_reports_role.rights = rights
最後に、Workload Securityで役割を作成します。
admin_roles_api = api.AdministratorRolesApi(api.ApiClient(configuration))
new_role = admin_roles_api.create_administrator_role(run_reports_role, api_version)
例:役割の作成
次の例では、コンピュータを検索したり、各コンピュータにポリシーが割り当てられ、必要に応じてポリシーが割り当てられます。Auditorの役割は、コンピュータの変更権限がないため、これらの要件を満たしていません。
# Create the Role object
run_reports_role = api.Role()
run_reports_role.name = "Computer Status and Properties"
# No need for access to policies
run_reports_role.all_policies = False
# Add rights to edit computer properties
computer_rights = api.ComputerRights()
computer_rights.can_edit_computer_properties = True
platform_rights = api.PlatformRights()
platform_rights.computer_rights = computer_rights
rights = api.Rights()
rights.platform_rights = platform_rights
# Add the rights to the role
run_reports_role.rights = rights
# Create the role on Workload Security
admin_roles_api = api.AdministratorRolesApi(api.ApiClient(configuration))
new_role = admin_roles_api.create_administrator_role(run_reports_role, api_version)
return new_role.id
また、APIリファレンスのCreate an Administrator Role 操作も参照してください。