Object Storage Service (OSS) は、OSSバケットに保存されているリソースに関連するイベントを記録するためのアクセスログを生成します。 バケットのロギングを有効にして設定すると、事前定義された命名規則に基づいて1時間ごとにログオブジェクトが生成され、指定されたバケットにログオブジェクトが保存されます。
使用上の注意
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba CloudサービスからOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、アクセス資格情報は環境変数から取得します。 アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSTS (Security Token Service) を使用してOSSClientインスタンスを作成する場合は、「初期化」をご参照ください。
ロギングを有効にするには、
oss:PutBucketLogging
権限が必要です。 ログ設定をクエリするには、oss:GetBucketLogging
権限が必要です。 ロギングを無効にするには、oss:DeleteBucketLogging
権限が必要です。 詳細については、「RAMポリシーの一般的な例」をご参照ください。
バケットのロギングの有効化
次のコードは、バケットのロギングを有効にする方法の例を示しています。
# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
oss2.modelsからBucketLoggingをインポート
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
# バケットの名前を指定します。 例: examplebucket.
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
# 生成されたログオブジェクトが現在のバケットに保存されることを指定します。
# ログオブジェクトが格納されているディレクトリをlog /に設定します。 このパラメーターを指定すると、ログオブジェクトはバケットの指定されたディレクトリに保存されます。 このパラメーターを指定しない場合、ログオブジェクトはバケットのルートディレクトリに保存されます。
# バケットのロギングを有効にします。
logging = bucket.put_bucket_logging(BucketLogging(bucket.bucket_name, 'log/'))
logging.status == 200の場合:
print (「アクセスログの有効化」)
else:
print("request_id:", logging.request_id)
print("resp : ", logging.resp.response)
バケットのログ設定の表示
次のコードは、バケットのログ設定を照会する方法の例を示しています。
# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
# バケットの名前を指定します。 例: examplebucket.
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
# バケットのログ設定を表示します。
logging = bucket.get_bucket_logging()
print('TargetBucket={0}, TargetPrefix={1}'.format(logging.tar get_bucket, logging.tar get_prefix)
バケットのロギングを無効にする
次のコードは、バケットのロギングを無効にする方法の例を示しています。
# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
# バケットの名前を指定します。 例: examplebucket.
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
# バケットのロギングを無効にします。
logging = bucket.de lete_bucket_logging()
logging.status == 204の場合:
print (「アクセスログの無効化」)
else:
print("request_id:", logging.request_id)
print("resp : ", logging.resp.response)
参考資料
バケットのロギングを設定するために使用される完全なサンプルコードについては、GitHubをご覧ください。
バケットのロギングを有効にするために呼び出すことができるAPI操作の詳細については、「PutBucketLogging」をご参照ください。
バケットのログ設定を照会するために呼び出すことができるAPI操作の詳細については、「GetBucketLogging」をご参照ください。
バケットのロギングを無効にするために呼び出すことができるAPI操作の詳細については、「DeleteBucketLogging」をご参照ください。