AWS DataSync タスクを実行しましたが、関連する Amazon CloudWatch ロググループにログが見つかりません。この問題を解決するには、どうすればよいですか?
解決方法
CloudWatch Logs に DataSync がログのアップロードを行えるようにするリソースポリシーがあることを確認します。以下の手順に従って、DataSync エージェントの AWS リージョンにある CloudWatch Logs リソースポリシーを確認します。
注: AWS CLI コマンドの実行時にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
1. 以下のように、AWS コマンドラインインターフェイス (AWS CLI) を使用して describe-resource-pelicies コマンドを実行します。
aws logs describe-resource-policies --region us-east-1
注意:各 AWS アカウントには、CloudWatch Logs のリージョンごとに最大 10 個のリソースポリシーが許可されます。この制限を超えると、リソースポリシーの作成時にエラーメッセージが表示されます。
2. コマンドの出力を確認します。リソースポリシーが設定されていない場合、出力は次のようになります。
{
"resourcePolicies": []
}
重要: DataSync のリソースポリシーが正しい AWS リージョンで有効になっていることを確認します。ポリシーは、使用している DataSync エージェントと同じリージョンにある必要があります。
ログをアップロードするための DataSync アクセス許可を付与するリソースポリシーを作成するには、次の手順に従います。
1. DataSync にログをアップロードするための最小権限を付与する JSON ファイルを作成します。
{
"Statement": [
{
"Sid": "DataSyncLogsToCloudWatchLogs",
"Effect": "Allow",
"Action": [
"logs:PutLogEvents",
"logs:CreateLogStream"
],
"Principal": {
"Service": "datasync.amazonaws.com"
},
"Resource": "*"
}
],
"Version": "2012-10-17"
}
ファイルに policy.json という名前を付けることができます。
2. AWS CLI を利用して put-resource-policy コマンドを実行し、JSON ファイルを使用してリソースポリシーを作成します。
aws logs put-resource-policy --policy-name trustDataSync --policy-document file://policy.json --region <Region>
重要: DataSync エージェントの AWS リージョンを --region の値として設定します。
3. describe-resource-polices コマンドを実行して、リソースポリシーが作成されたことを確認します。
aws logs describe-resource-policies --region <Region>
注意:各 AWS アカウントには、CloudWatch Logs のリージョンごとに最大 10 個のリソースポリシーが許可されます。この制限を超えると、リソースポリシーの作成時にエラーメッセージが表示されます。put-resource-policy コマンドを使用して、制限に達したかどうかを確認します。
4. リソースポリシーを作成すると、コマンドの出力は次のようになります。
{
"resourcePolicies": [
{
"policyName": "trustDataSync",
"policyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"DataSyncLogsToCloudWatchLogs\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"datasync.amazonaws.com\"},\"Action\":[\"logs:PutLogEvents\",\"logs:CreateLogStream\"],\"Resource\":\"*\"}]}",
"lastUpdatedTime": 1577448776606
}
]
}
5. リソースポリシーをテストするには、DataSync タスクを実行します。タスクの実行後数分後に、関連する CloudWatch ロググループのログストリームが表示されていることを確認します。
関連情報
CloudWatch Logs リソースへのアクセス権限の管理の概要