我有很多 AWS 賬戶。我為所有這些日志啟用了 VPC 流日志,并且我想將這些日志傳送到我的日志存檔帳戶中的中央 S3 存盤桶。
有效的 IAM 策略如下:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {"Service": "delivery.logs.amazonaws.com"},
"Action": "s3:PutObject",],
"Resource": "arn:aws:s3:::central_log_archive_bucket",
"Condition": {
"StringEquals": {
"aws:SourceAccount": <account_id-1>,
"aws:SourceAccount": <account_id-2>,
"aws:SourceAccount": <account_id-3>,
...
"aws:SourceAccount": <account_id-N>
},
"ArnLike": {
"aws:SourceArn": "arn:aws:logs:*:<account_id-1>:*",
"aws:SourceArn": "arn:aws:logs:*:<account_id-2>:*",
"aws:SourceArn": "arn:aws:logs:*:<account_id-3>:*",
...
"aws:SourceArn": "arn:aws:logs:*:<account_id-N>:*",
}
}
}
]
}
我想簡化這個。我不想添加如上所示的所有賬戶 ID,而是允許屬于我組織下的 AWS 賬戶的任何 VPC 服務將日志發布到 S3。簡而言之,我想做一些類似的事情:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSLogDeliveryWrite",
"Effect": "Allow",
"Principal": {"Service": "delivery.logs.amazonaws.com"},
"Action": "s3:PutObject",],
"Resource": "arn:aws:s3:::central_log_archive_bucket",
"Condition": {
"StringEquals": {
"aws:PrincipalOrgID": "ID"
}
}
}
]
}
但我看到以下錯誤訊息:
Unsupported Condition Key for Service Principal
知道如何進行這項作業嗎?
uj5u.com熱心網友回復:
正如這里提到的https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html,
您不能對某些服務主體使用某些條件鍵。例如,您不能將aws:PrincipalOrgID條件鍵與服務主體cloudfront.amazonaws.com.或其他服務(如日志)一起使用。您應該洗掉不適用于 Principal 元素中的服務主體的條件鍵。
例如,您可以在每個帳戶創建中使用 lambda 自動執行它,以更改存盤桶策略...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/378772.html
