このページは機械翻訳したものです。

セキュリティ・ポリシーの例

ポリシーを使用して、最小限の権限でサービス・レベル管理者を作成する方法、管理者がテナンシ管理者グループ・メンバーシップを変更する機能を制限する方法、管理者がセキュリティ・ポリシーを削除または更新できないようにする方法、およびユーザーがユーザー資格証明にアクセスまたは変更できないようにする方法について学習します。

一般的なIAMセキュリティ・ポリシーの例は、共通ポリシーを参照してください。この後のすべての例で、ポリシーの対象範囲はテナンシです。ただし、コンパートメント名を指定することによって、テナンシ内の特定のコンパートメントを対象範囲に絞り込むことができます。

最小限の権限を持つサービスレベル管理者を作成

最小限の権限というセキュリティ原則を実装するにために、テナンシのサービスレベル管理者を作成して、管理アクセスの対象範囲をさらに絞り込むことができます。つまり、サービスレベルの管理者は、特定のサービスのリソースしか管理できません。たとえば、ネットワーク管理者は、VCNリソースに対してのみ管理アクセス権(manage)が必要であり、他のリソースには必要ありません。次の例は、ブロック・ストレージ(VolumeAdmins)、VCN (NetworkAdmins)、データベース(DBAdmins)およびオブジェクト・ストレージ(StorageAdmins)の管理者グループを作成する方法を示しています。

Allow group TenancyAdmins to manage all-resources in tenancy
Allow group VolumeAdmins to manage volume-family in tenancy
Allow group NetworkAdmins to manage virtual-network-family in tenancy
Allow group StorageAdmins to manage object-family in tenancy
Allow group DBAdmins to manage database-family in tenancy

セキュリティ・ポリシーを特定のコンパートメントにさらに限定できます。たとえば、企業のHR部門は、コンパートメントHR-compartment内のリソースを管理するためにグループHRAdminsを作成できます。HRNetworkAdminsグループは、HR-compartmentコンパートメント内のVCNリソースのみの管理アクセス権を保持します。

Allow group HRAdmins to manage all-resources in compartment HR-compartment
Allow group HRNetworkAdmins to manage virtual-network-family in compartment HR-compartment

コンプライアンス監査者には、クラウド・リソースを調査し、ポリシー違反を検証するタスクがあります。次のポリシーによって、InternalAuditorsグループはテナンシ内のすべてのリソースの調査(list)が許可されます。

Allow group InternalAuditors to inspect all-resources in tenancy

テナンシのユーザーとグループのみを調査するように監査者を制限する場合は、次のポリシーを使用してグループUserAuditorsを作成できます:

Allow group UserAuditors to inspect users in tenancy
Allow group UserAuditors to inspect groups in tenancy

テナンシ内のVCNファイアウォールのみを検査できる監査者グループを作成する場合は、次のポリシーを使用します:

Allow group FirewallAuditors to inspect security-lists in tenancy

すべてのポリシーの例で、ポリシーにCompartment <name> (<name>はコンパートメント名)を指定することで、ポリシーの対象をコンパートメントに限定できます。

テナンシ管理者グループのメンバーシップの変更権限を制限

グループAdministratorsのメンバーは、テナンシ内のすべてのリソースを管理できます。Administratorsグループのメンバーシップは、そのグループ内のユーザーによって制御されます。通常、テナンシでのユーザーの作成や追加を行うグループがあると便利ですが、そのようなグループがAdministratorsグループのメンバーシップに変更を加えることは制限してください。次の例では、このためにUserAdminsグループを作成します。

Allow group UserAdmins to inspect users in tenancy
Allow group UserAdmins to inspect groups in tenancy
Allow group UserAdmins to use users in tenancy
 where target.group.name!='Administrators'
Allow group UserAdmins to use groups in tenancy
 where target.group.name!='Administrators'

動詞と条件(3番目と4番目のポリシー・ステートメント)を一緒に使用して、UserAdminsがAPI (UpdateUserUpdateGroup)を使用して、Administratorsグループを除くテナンシ内のすべてのグループにユーザーとグループを追加できるようにします。ただし、target.group.name!='Administrators'はlistgetのAPI (ListUsersGetUserListGroupsおよびGetGroup)には関連していないため、これらのAPIは失敗します。そのため、UserAdminsがユーザーおよびグループ・メンバーシップ情報を取得できるようにするには、inspect動詞(1番目と2番目のポリシー・ステートメント)を明示的に追加する必要があります。

セキュリティ・ポリシーの削除または更新の防止

次の例では、PolicyAdminsグループを作成して、テナンシ管理者によって作成されたセキュリティ・ポリシーの作成とリスト表示を行えるようにしますが、削除や更新はできません。

Allow group PolicyAdmins to use policies in tenancy
Allow group PolicyAdmins to manage policies in tenancy
 where request.permission='POLICY_CREATE'

このセキュリティ・ポリシー・ステートメントでは、POLICY_CREATE権限のみが明示的に許可されます。POLICY_DELETEおよびPOLICY_UPDATE権限は許可されません。

管理者によるユーザー資格証明へのアクセスまたは変更の防止

コンプライアンス要件によっては、職務の分離(特にユーザー資格証明の管理業務とテナンシ管理の分離)が求められます。このケースでは、TenancyAdminsCredentialAdminsという2つの管理グループを作成して、TenancyAdminsがユーザー資格証明管理を除くすべてのテナンシ管理業務を実行し、CredentialAdminsがユーザー資格証明を管理するようにします。TenancyAdminsは、ユーザー資格証明のリスト表示、更新または削除を除くすべてのAPIにアクセスできます。CredentialAdminsは、ユーザー資格証明のみを管理できます。

Allow group TenancyAdmins to manage all resources in tenancy
 where all {request.operation!='ListApiKeys',
            request.operation!='ListAuthTokens',
            request.operation!='ListCustomerSecretKeys',
            request.operation!='UploadApiKey',
            request.operation!='DeleteApiKey',
            request.operation!='UpdateAuthToken',
            request.operation!='CreateAuthToken',
            request.operation!='DeleteAuthToken',
            request.operation!='CreateSecretKey',
            request.operation!='UpdateCustomerSecretKey',
            request.operation!='DeleteCustomerSecretKey'}
Allow group CredentialAdmins to manage users in tenancy
 where any {request.operation='ListApiKeys',
            request.operation='ListAuthTokens',
            request.operation='ListCustomerSecretKeys',
            request.operation='UploadApiKey',
            request.operation='DeleteApiKey',
            request.operation='UpdateAuthToken',
            request.operation='CreateAuthToken',
            request.operation='DeleteAuthToken',
            request.operation='CreateSecretKey',
            request.operation='UpdateCustomerSecretKey',
            request.operation='DeleteCustomerSecretKey'}

この記事は役に立ちましたか。