Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
À utiliser PutResourcePolicyavec un AWS Kit SDK
L’exemple de code suivant montre comment utiliser PutResourcePolicy.
Les exemples d’actions sont des extraits de code de programmes de plus grande envergure et doivent être exécutés en contexte. Vous pouvez voir cette action en contexte dans l’exemple de code suivant :
- Python
-
- Kit SDK for Python (Boto3)
-
def put_resource_policy(
self,
log_group_arn: str,
vpc_endpoint_id: str,
) -> dict[str, Any]:
"""
Creates or updates a resource-scoped policy on a log group that grants
the syslog.logs.amazonaws.com service principal permission to call
logs:PutLogEvents and logs:CreateLogStream.
A resource-scoped policy (one attached to a specific log group) is
specified with resourceArn and policyDocument. The PutResourcePolicy
API does not allow policyName to be combined with resourceArn.
:param log_group_arn: The ARN of the log group (with trailing :*).
:param vpc_endpoint_id: The VPC endpoint ID to scope the condition.
:return: The resource policy response.
"""
policy_document = json.dumps(
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "SyslogIngestPermissions",
"Effect": "Allow",
"Principal": {"Service": "syslog.logs.amazonaws.com"},
"Action": [
"logs:PutLogEvents",
"logs:CreateLogStream",
],
"Resource": log_group_arn,
"Condition": {
"StringEquals": {"aws:sourceVpce": vpc_endpoint_id}
},
}
],
}
)
try:
response = self.logs_client.put_resource_policy(
policyDocument=policy_document,
resourceArn=log_group_arn,
)
logger.info("Put resource policy on log group '%s'.", log_group_arn)
return response
except ClientError as error:
logger.error(
"Failed to put resource policy: %s",
error.response["Error"]["Message"],
)
raise
Pour obtenir la liste complète des guides de développement du AWS SDK et des exemples de code, consultezUtilisation CloudWatch des journaux avec un AWS Kit SDK. Cette rubrique comprend également des informations sur le démarrage et sur les versions précédentes du kit SDK.