Tous les produits
Search
Centre de documentation

Object Storage Service:Gérez les politiques de bucket à l'aide du SDK OSS pour Python 2.0

Dernière mise à jour :Sep 22, 2026

Les politiques de bucket vous permettent d'autoriser ou de restreindre l'accès à des ressources OSS spécifiques pour des utilisateurs anonymes ou identifiés, tels que des comptes Alibaba Cloud, des utilisateurs RAM et des rôles RAM. Par exemple, vous pouvez accorder à un utilisateur RAM d'un autre compte Alibaba Cloud des permissions en lecture seule sur certaines ressources OSS.

Notes

  • Avant de configurer les politiques de bucket, assurez-vous de bien comprendre cette fonctionnalité.

  • L'exemple de code de cette rubrique utilise l'ID de région cn-hangzhou correspondant à la région Chine (Hangzhou). Par défaut, l'accès aux ressources d'un bucket s'effectue via l'endpoint public. Si vous souhaitez accéder aux ressources du bucket depuis d'autres services Alibaba Cloud situés dans la même région, utilisez un endpoint interne. Pour plus d'informations sur les régions et les endpoints pris en charge, consultez la rubrique Régions et endpoints.

  • La permission oss:PutBucketPolicy est nécessaire pour configurer une politique de bucket. La permission oss:GetBucketPolicy permet d'interroger une politique de bucket. Enfin, la permission oss:DeleteBucketPolicy est requise pour supprimer une politique de bucket. Pour plus d'informations, consultez la section Accorder une politique personnalisée.

Méthodes

Configurer une politique de bucket

put_bucket_policy(request: PutBucketPolicyRequest, **kwargs) → PutBucketPolicyResult

Interroger les politiques de bucket

get_bucket_policy(request: GetBucketPolicyRequest, **kwargs) → GetBucketPolicyResult

Supprimer une politique de bucket

delete_bucket_policy(request: DeleteBucketPolicyRequest, **kwargs) → DeleteBucketPolicyResult

Paramètre

Type

Description

request

PutBucketPolicyRequest

Requête destinée à l'opération PutBucketPolicy. Pour connaître les paramètres de la requête, consultez PutBucketPolicyRequest.

GetBucketPolicyRequest

Requête destinée à l'opération GetBucketPolicy. Pour connaître les paramètres de la requête, consultez GetBucketPolicyRequest.

DeleteBucketPolicyRequest

Requête destinée à l'opération DeleteBucketPolicy. Pour connaître les paramètres de la requête, consultez DeleteBucketPolicyRequest.

Paramètres de réponse

Type

Description

PutBucketPolicyResult

Valeur de retour. Pour plus d'informations, consultez PutBucketPolicyResult.

GetBucketPolicyResult

Valeur de retour. Pour plus d'informations, consultez GetBucketPolicyResult.

DeleteBucketPolicyResult

Valeur de retour. Pour plus d'informations, consultez DeleteBucketPolicyResult.

Pour consulter la définition complète de la méthode permettant de configurer une politique de bucket, reportez-vous à put_bucket_policy.

Pour consulter la définition complète de la méthode permettant d'interroger les politiques de bucket, reportez-vous à get_bucket_policy.

Pour consulter la définition complète de la méthode permettant de supprimer une politique de bucket, reportez-vous à delete_bucket_policy.

Exemples de code

Configurer une politique de bucket

L'exemple de code suivant configure une politique de bucket.

import argparse
import alibabacloud_oss_v2 as oss

# Create a command-line parameter parser for obtaining the values of the command-line parameters.
parser = argparse.ArgumentParser(description="put bucket policy sample")
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # Parse the command-line parameters.
    args = parser.parse_args()

    # Load access credentials from environment variables.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Use the default configuration of the SDK.
    cfg = oss.config.load_default()
    # Set the credential provider.
    cfg.credentials_provider = credentials_provider
    # Specify the region.
    cfg.region = args.region
    # If an endpoint is provided from the command line, update the endpoint in the configuration with the provided endpoint.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Create an OSS client.
    client = oss.Client(cfg)

    # In the following example, the bucket owner whose UID is 174649585760xxxx uses a bucket policy to authorize a RAM user whose UID is 20214760404935xxxx to list all objects in examplebucket.
    policy_text = "{\"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"oss:GetObject\", \"oss:ListObjects\"], \"Principal\": [\"20214760404935xxxx\"], \"Resource\": [\"acs:oss:*:174649585760xxxx:examplebucket/*\"]}], \"Version\": \"1\"}"

    # Apply the policy to the specified bucket.
    result = client.put_bucket_policy(oss.PutBucketPolicyRequest(
            bucket=args.bucket,
            body=policy_text,
    ))

    # Display the HTTP status code and request ID.
    print(f'status code: {result.status_code}, request id: {result.request_id}')

if __name__ == "__main__":
    main()

Interroger les politiques de bucket

L'exemple de code suivant interroge les politiques de bucket.

import argparse
import alibabacloud_oss_v2 as oss

# Create a command-line parameter parser.
parser = argparse.ArgumentParser(description="get bucket policy sample")
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # Parse the command-line parameters.
    args = parser.parse_args()

    # Load access credentials from environment variables.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Use the default configuration of the SDK.
    cfg = oss.config.load_default()
    # Set the credential provider.
    cfg.credentials_provider = credentials_provider
    # Specify the region.
    cfg.region = args.region
    # If an endpoint is provided from the command line, update the endpoint in the configuration with the provided endpoint.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Create an OSS client.
    client = oss.Client(cfg)

    # Call get_bucket_policy to query the bucket policies.
    result = client.get_bucket_policy(oss.GetBucketPolicyRequest(
            bucket=args.bucket,
    ))

    # Display the HTTP status code, request ID, and response body.
    print(f'status code: {result.status_code},'
            f' request id: {result.request_id},'
            f' body: {result.body},'
    )

# Call the main function when the script is directly run.
if __name__ == "__main__":
    main()

Supprimer une politique de bucket

L'exemple de code suivant supprime une politique de bucket.

import argparse
import alibabacloud_oss_v2 as oss

# Create a command-line parameter parser.
parser = argparse.ArgumentParser(description="delete bucket policy sample")
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # Parse command-line parameters.
    args = parser.parse_args()

    # Load access credentials from environment variables.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Use the default configuration of the SDK.
    cfg = oss.config.load_default()
    # Set the credential provider.
    cfg.credentials_provider = credentials_provider
    # Specify the region.
    cfg.region = args.region
    # If an endpoint is provided from the command line, update the endpoint in the configuration with the provided endpoint.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Create an OSS client.
    client = oss.Client(cfg)

    # Call the delete_bucket_policy method.
    result = client.delete_bucket_policy(oss.DeleteBucketPolicyRequest(
            bucket=args.bucket,  # Specify the name of the bucket to perform the operation on.
    ))

    # Display the HTTP status code and request ID.
    print(f'status code: {result.status_code}, request id: {result.request_id}')

# Execute the main function when the script is directly run.
if __name__ == "__main__":
    main()

Références

  • Pour obtenir l'exemple de code complet permettant de configurer une politique de bucket, consultez le fichier put_bucket_policy.py.

  • Pour obtenir l'exemple de code complet permettant d'interroger les politiques de bucket, consultez le fichier get_bucket_policy.py.

  • Pour obtenir l'exemple de code complet permettant de supprimer une politique de bucket, consultez le fichier delete_bucket_policy.py.