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

Simple Log Service:カスタムポリシーを使用してRAMユーザーに権限を付与する例

最終更新日:Oct 31, 2024

このトピックでは、カスタムポリシーを使用してResource Access Management (RAM) ユーザーに権限を付与する例を示します。

重要
  • ポリシーを作成するときは、Logstoreキーワードの後にlogstoreまたはMetricstoreを指定できます。 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ユーザーはプロジェクトのログを表示できません。 また、プロジェクト内の特定のLogstoreに対して読み取り専用の権限を付与する必要があります。

    次のポリシーを使用します。

    {
       "Version": "1",
       "Statement": [
         {
           "Action": ["log:ListProject"],
           "Resource": ["acs:log:*:*:project/*"],
           "Effect": "Allow"
         },
         {
           "Action": [
             "log:Get*",
             "log:List*"
           ],
           "Resource": [
             "acs:log:*:*:project/<Project name>/*",
             "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に対する読み取り専用権限と、プロジェクト内のすべての保存済み検索とダッシュボードを表示するための権限

    たとえば、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にデータを書き込む権限

    指定したLogstoreにデータを書き込む権限のみをRAMユーザーに付与するには、次のポリシーを使用します。

    ポリシーを作成するときは、Logstoreキーワードの後にlogstoreまたはMetricstoreを指定できます。 Metricstoreを管理する場合は、次のポリシーも適用されます。

    {
      "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からデータを消費する権限

    指定されたLogstoreからデータを消費する権限のみを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>/logstore/<Logstore name>",
            "acs:log:*:*:project/<Project name>/logstore/<Logstore name>/*"
          ],
          "Effect": "Allow"
        }
      ]
    }
  • 指定されたLogstoreの暗号化設定を強制的に有効にする権限

    RAMユーザーに権限を付与した後、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

    • 一般ホスト監査

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

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

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

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

    • 読み取り権限

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

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

関連ドキュメント

サポートされているアクションおよびリソース要素の詳細については、「権限付与ルール」をご参照ください。