すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:Simple Log Serviceのカスタムポリシー

最終更新日:Sep 14, 2024

システムポリシーがビジネス要件を満たしていない場合は、カスタムポリシーを作成できます。 最小特権 (PoLP) の原則に従って、カスタムポリシーを作成できます。 カスタムポリシーは、権限をきめ細かく管理し、リソースアクセスのセキュリティを向上させるのに役立ちます。 このトピックでは、Simple Log Serviceのカスタムポリシーを使用できるシナリオとサンプルポリシーについて説明します。

カスタムポリシーとは何ですか?

RAM (Resource Access Management) ポリシーは、システムポリシーとカスタムポリシーに分類されます。 ビジネス要件に基づいてカスタムポリシーを管理できます。

  • カスタムポリシーを作成した後、RAMユーザー、RAMユーザーグループ、またはRAMロールにポリシーをアタッチする必要があります。 これにより、ポリシーで指定された権限をプリンシパルに付与できます。

  • プリンシパルにアタッチされていないRAMポリシーを削除できます。 RAMポリシーがプリンシパルにアタッチされている場合は、RAMポリシーを削除する前に、RAMポリシーをプリンシパルからデタッチする必要があります。

  • カスタムポリシーはバージョン管理をサポートします。 RAMが提供するバージョン管理メカニズムに基づいて、カスタムポリシーバージョンを管理できます。

関連ドキュメント

シナリオとサンプルポリシー

重要
  • Resource Access Management (RAM) ユーザーにMetricstoreへのアクセス権限を付与する場合は、このトピックのすべてのポリシーを使用できます。

  • セキュリティ上の理由から、RAMユーザーに権限を付与する場合は、PoLPに従うことをお勧めします。 ほとんどの場合、RAMユーザーがプロジェクトリストでプロジェクトを表示する前に、RAMユーザーにプロジェクトリストの読み取り専用権限を付与する必要があります。 詳細については、「RAMユーザーへのシステムポリシーのアタッチ」および「カスタムポリシーの作成」をご参照ください。

プロジェクトを表示する権限

Alibaba Cloudアカウントを使用して、RAMユーザーに次の権限を付与します。

  • Alibaba Cloudアカウント内でプロジェクトリストを表示する権限

次のコードは、前述の権限を付与するポリシーの例を示しています。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:ListProject"
      ],
      "Resource": [
        "acs:log:*:*:project/*"
      ],
      "Effect": "Allow"
    }
  ]
}

プロジェクトに対する読み取り専用権限

Alibaba Cloudアカウントを使用して、RAMユーザーに次の権限を付与します。

  • Alibaba Cloudアカウント内でプロジェクトリストを表示する権限

  • Alibaba Cloudアカウント内の特定のプロジェクトに対する読み取り専用権限

説明

RAMユーザーにプロジェクトの読み取り専用権限を付与すると、RAMユーザーはプロジェクトのログを表示できません。 また、プロジェクトのログストアに読み取り専用の権限を付与する必要があります。

次のコードは、前述の権限を付与するポリシーの例を示しています。

{
   "Version": "1",
   "Statement": [
     {
       "Action": ["log:ListProject"],
       "Resource": ["acs:log:*:*:project/*"],
       "Effect": "Allow"
      },
     {
       "Action": [
         "log:Get*",
         "log:List*"
       ],
       "Resource": "acs:log:*:*:project/<Project name>/*",
       "Effect": "Allow"
     }
   ]
 }

特定のLogstoreに対する読み取り専用権限と、保存済み検索を作成および管理するための権限

Alibaba Cloudアカウントを使用して、RAMユーザーに次の権限を付与します。

  • Alibaba Cloudアカウント内でプロジェクトリストを表示する権限

  • 特定のLogstoreに対する読み取り専用権限と、保存済み検索を作成および管理するための権限

次のコードは、前述の権限を付与するポリシーの例を示しています。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:ListProject"
      ],
      "Resource": "acs:log:*:*:project/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:List*"
      ],
      "Resource": "acs:log:*:*:project/<Project name>/logstore/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:Get*",
        "log:List*"
      ],
      "Resource": [
        "acs:log:*:*:project/<Project name>/logstore/<Logstore name>"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:List*"
      ],
      "Resource": [
        "acs:log:*:*:project/<Project name>/dashboard",
        "acs:log:*:*:project/<Project name>/dashboard/*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:Get*",
        "log:List*",
        "log:Create*"
      ],
      "Resource": [
        "acs:log:*:*:project/<Project name>/savedsearch",
        "acs:log:*:*:project/<Project name>/savedsearch/*"
      ],
      "Effect": "Allow"
    }
  ]
}

特定のLogstoreに対する読み取り専用権限と、Logstoreが属するプロジェクト内のすべての保存済み検索とダッシュボードを表示するための権限

Alibaba Cloudアカウントを使用して、RAMユーザーに次の権限を付与します。

  • Alibaba Cloudアカウント内でプロジェクトリストを表示する権限

  • 特定のLogstoreに対する読み取り専用権限と、Logstoreが属するプロジェクト内のすべての保存済み検索およびダッシュボードを表示するための権限

次のコードは、前述の権限を付与するポリシーの例を示しています。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:ListProject"
      ],
      "Resource": "acs:log:*:*:project/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:List*"
      ],
      "Resource": "acs:log:*:*:project/<Project name>/logstore/*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:Get*",
        "log:List*"
      ],
      "Resource": [
        "acs:log:*:*:project/<Project name>/logstore/<Logstore name>"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:Get*",
        "log:List*"
      ],
      "Resource": [
        "acs:log:*:*:project/<Project name>/dashboard",
        "acs:log:*:*:project/<Project name>/dashboard/*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "log:Get*",
        "log:List*"
      ],
      "Resource": [
        "acs:log:*:*:project/<Project name>/savedsearch",
        "acs:log:*:*:project/<Project name>/savedsearch/*"
      ],
      "Effect": "Allow"
    }
  ]
}

特定のプロジェクトにデータを書き込む権限

次のコードは、特定のプロジェクトにデータを書き込む権限のみをRAMユーザーに付与するポリシーの例を示しています。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:Post*"
      ],
      "Resource": "acs:log:*:*:project/<Project name>/*",
      "Effect": "Allow"
    }
  ]
}

特定のLogstoreにデータを書き込む権限

次のコードは、RAMユーザーに特定のLogstoreにデータを書き込む権限のみを付与するポリシーの例を示しています。

{
  "Version":"1",
  "Statement":[
    {
      "Effect":"Allow",
      "Action":[
        "log:PostLogStoreLogs"
      ],
      "Resource":[
        "acs:log:*:*:project/<Project name>/logstore/<Logstore name>"
      ]
    }
  ]
}

特定のプロジェクトからデータを消費する権限

次のコードは、RAMユーザーに特定のプロジェクトのデータを消費する権限のみを付与するポリシーの例を示しています。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:ListShards",
        "log:GetCursorOrData",
        "log:GetConsumerGroupCheckPoint",
        "log:UpdateConsumerGroup",
        "log:ConsumerGroupHeartBeat",
        "log:ConsumerGroupUpdateCheckPoint",
        "log:ListConsumerGroup",
        "log:CreateConsumerGroup"
      ],
      "Resource": "acs:log:*:*:project/<Project name>/*",
      "Effect": "Allow"
    }
  ]
}

特定のLogstoreからデータを消費する権限

次のコードは、RAMユーザーに特定のLogstoreからデータを消費する権限のみを付与するポリシーの例を示しています。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "log:ListShards",
        "log:GetCursorOrData",
        "log:GetConsumerGroupCheckPoint",
        "log:UpdateConsumerGroup",
        "log:ConsumerGroupHeartBeat",
        "log:ConsumerGroupUpdateCheckPoint",
        "log:ListConsumerGroup",
        "log:CreateConsumerGroup"
      ],
      "Resource": [
        "acs:log:*:*:project/<Project name>/logstore/<Logstore name>",
        "acs:log:*:*:project/<Project name>/logstore/<Logstore name>/*"
      ],
      "Effect": "Allow"
    }
  ]
}

特定のLogstoreの暗号化設定を強制的に有効にする権限

RAMユーザーに特定のLogstoreの暗号化設定を強制的に有効にする権限を付与した後、RAMユーザーがLogstoreを作成または変更するときに、RAMユーザーは暗号化設定を有効にする必要があります。 権限が付与されていないRAMユーザーは、RAMユーザーがLogstoreを作成または変更するときに、暗号化設定を有効にする必要はありません。

説明

正確なプロジェクト名とLogstore名を指定できます。 アスタリスク (*) を使用して、ファジーマッチを実行することもできます。

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "log:CreateLogStore",
        "log:UpdateLogStore"
      ],
      "Resource": [
        "acs:log:*:*:project/<Project name>/logstore/<Logstore name>",
        "acs:log:*:*:project/<Project name>/logstore/*"
      ],
      "Condition": {
        "Bool": {
          "log:Encrypted": "true"
        }
      }
    }
  ]
}

特定のログアプリケーションを使用する権限

RAMユーザーが次のログアプリケーションまたは機能を使用できるようにするには、RAMユーザーに必要な権限を付与する必要があります。

  • 共通データベース監査

  • モバイルO&Mモニタリング

  • フローログセンター

  • AWS CloudTrailのログ分析

  • SREWorks

  • 一般ホスト監査

  • インテリジェントな異常分析

  • カスタムダッシュボード

  • ダッシュボードのプレイリスト

ビジネス要件に基づいて、次のいずれかのポリシーを使用します。

  • 読み取り権限

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "log:GetResource",
                    "log:ListResources",
                    "log:GetResourceRecord",
                    "log:ListResourceRecords"
                ],
                "Resource": [
                    "acs:log:*:*:resource/*"
                ]
            }
        ]
    }
  • 管理権限

    {
        "Version": "1",
        "Statement": [
              {
          "Effect": "Allow",
          "Action": [
            "log:*"
          ],
          "Resource": [
            "acs:log:*:*:resource/*"
          ]
        }
        ]
    }

関連ドキュメント

カスタムポリシーを作成する前に、ビジネス要件を把握し、Simple Log Serviceの認証情報をよく知っている必要があります。 詳細については、「 RAM での権限付与」をご参照ください。