Log Service リソースに対して詳細なアクセスを付与するための、一般的な RAM ポリシーの例を示します。
ポリシーでは、Logstore は Metricstore も意味します。このトピックのすべてのポリシーは両方に適用されます。
最小権限の原則 (PoLP) に従ってください。RAM ユーザーが必要とする最小限の権限のみを付与してください。少なくとも、ほとんどのユーザーにはプロジェクトリストへの読み取り専用アクセスが必要です。これがない場合、プロジェクトリストは表示されません。詳細については、「システムポリシー」および「カスタムポリシーの作成」をご参照ください。
ポリシーの例
プロジェクトリストの表示権限
RAM ユーザーにプロジェクトリストを表示する権限を付与します。
log:ListProject アクションはすべてのプロジェクト (project/*) に適用されるため、RAM ユーザーはアカウント内のすべてのプロジェクトを表示できます。
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListProject"
],
"Resource": [
"acs:log:*:*:project/*"
],
"Effect": "Allow"
}
]
}
プロジェクトの読み取り専用権限
RAM ユーザーに、プロジェクトリストを表示し、指定したプロジェクト内のすべてのリソースを読み取る権限を付与します。
プロジェクトの読み取り専用権限には、そのプロジェクト内のログデータへのアクセスは含まれません。ログを読み取るには、Logstore に対する読み取り専用権限も付与してください。
最初のステートメントはプロジェクトリストを対象とします。2つ目のステートメントは log:Get* と log:List* を使用して、特定のプロジェクト内のすべてのリソースを対象とします。両方のリソースパスが必要です:プロジェクトルート (project/<your-project-name>) と、すべてのサブリソース (project/<your-project-name>/*)。
{
"Version": "1",
"Statement": [
{
"Action": ["log:ListProject"],
"Resource": ["acs:log:*:*:project/*"],
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<your-project-name>/*",
"acs:log:*:*:project/<your-project-name>"
],
"Effect": "Allow"
}
]
}
Logstore の読み取り専用とクイック検索の管理
RAM ユーザーに、プロジェクトリストを表示し、特定の Logstore を読み取り、クイック検索を作成および管理する権限を付与します。
このポリシーには 5 つのステートメントがあり、それぞれ異なるリソースタイプを対象とします:プロジェクトリスト、プロジェクト内のすべての Logstore (列挙用)、特定の Logstore (データアクセス用)、ダッシュボード (読み取り専用)、クイック検索 (読み取りと作成)。
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListProject"
],
"Resource": "acs:log:*:*:project/*",
"Effect": "Allow"
},
{
"Action": [
"log:List*"
],
"Resource": "acs:log:*:*:project/<your-project-name>/logstore/*",
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<your-project-name>/logstore/<your-logstore-name>"
],
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<your-project-name>/dashboard",
"acs:log:*:*:project/<your-project-name>/dashboard/*"
],
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*",
"log:Create*"
],
"Resource": [
"acs:log:*:*:project/<your-project-name>/savedsearch",
"acs:log:*:*:project/<your-project-name>/savedsearch/*"
],
"Effect": "Allow"
}
]
}
指定した Logstore、およびプロジェクト内のすべてのクイック検索とダッシュボードに対する読み取り専用権限
RAM ユーザーに、プロジェクトリストを表示し、特定の Logstore を読み取り、その Logstore が属するプロジェクト内のすべてのクイック検索とダッシュボードを表示する権限を付与します。
ステートメント 3 から 5 では log:Get* と log:List* の両方を使用し、ステートメント 1 と 2 ではリスト系のアクション (log:ListProject と log:List*) のみを使用します。前の例とは異なり、この例ではダッシュボードとクイック検索も読み取り専用です。クイック検索に log:Create* は含まれません。
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListProject"
],
"Resource": "acs:log:*:*:project/*",
"Effect": "Allow"
},
{
"Action": [
"log:List*"
],
"Resource": "acs:log:*:*:project/<your-project-name>/logstore/*",
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<your-project-name>/logstore/<your-logstore-name>"
],
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<your-project-name>/dashboard",
"acs:log:*:*:project/<your-project-name>/dashboard/*"
],
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": [
"acs:log:*:*:project/<your-project-name>/savedsearch",
"acs:log:*:*:project/<your-project-name>/savedsearch/*"
],
"Effect": "Allow"
}
]
}
プロジェクトの書き込み権限
RAM ユーザーに、指定したプロジェクトに対する書き込み権限を付与します。データのクエリなど、その他の操作に必要な権限は含まれません。
{
"Version": "1",
"Statement": [
{
"Action": [
"log:Post*"
],
"Resource": "acs:log:*:*:project/<your-project-name>/*",
"Effect": "Allow"
}
]
}
Logstore の書き込み権限
RAM ユーザーに、指定した Logstore に対する書き込み権限を付与します。データのクエリなど、その他の操作に必要な権限は含まれません。
{
"Version":"1",
"Statement":[
{
"Effect":"Allow",
"Action":[
"log:PostLogStoreLogs"
],
"Resource":[
"acs:log:*:*:project/<your-project-name>/logstore/<your-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/<your-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/<your-project-name>/logstore/<your-logstore-name>",
"acs:log:*:*:project/<your-project-name>/logstore/<your-logstore-name>/*"
],
"Effect": "Allow"
}
]
}
Logstore 暗号化の強制
このポリシーを RAM ユーザーにアタッチすると、ユーザーは Logstore の作成または変更時に暗号化設定を指定する必要があります。
プロジェクト名と Logstore 名を正確に指定するか、ワイルドカードとしてアスタリスク (*) を使用してください。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"log:CreateLogStore",
"log:UpdateLogStore"
],
"Resource": [
"acs:log:*:*:project/<your-project-name>/logstore/<your-logstore-name>",
"acs:log:*:*:project/<your-project-name>/logstore/*"
],
"Condition": {
"Bool": {
"log:Encrypted": "true"
}
}
}
]
}
ログアプリケーションの権限
これらのログアプリケーションまたは機能を使用する場合は、次の権限を RAM ユーザーまたはロールに付与してください:
Common Database Audit
Mobile O&M Monitoring
Flow Log Center
Log Analysis for AWS CloudTrail
SREWorks
General Host Audit
Intelligent Anomaly Analysis
Custom dashboards
Dashboard playlists
次のポリシーは、ログアプリケーションに必要な権限を付与します。
-
読み取り専用権限
{ "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/*" ] } ] }
関連情報
Log Service がサポートするアクションとリソースの一覧については、「認可ルール」をご参照ください。