s3sts.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. @Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.
  5. @AUTHOR: ASJRD018
  6. @NAME: AnsjerFormal
  7. @software: PyCharm
  8. @DATE: 2018/11/8 17:30
  9. @Version: python3.6
  10. @MODIFY DECORD:ansjer dev
  11. @file: s3sts.py
  12. @Contact: chanjunkai@163.com
  13. """
  14. def test_get_credential():
  15. import boto3
  16. REGION_NAME = 'us-east-1' # e.g
  17. import json
  18. boto3_sts = boto3.client(
  19. 'sts',
  20. aws_access_key_id='AKIA2E67UIMD45Y3HL53',
  21. aws_secret_access_key='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',
  22. region_name=REGION_NAME
  23. )
  24. Policy = {"Version": "2012-10-17", "Statement": [
  25. {"Effect": "Allow", "Action": "s3:*", "Resource": ["arn:aws:s3:::azvod1/*"]}]}
  26. response = boto3_sts.get_federation_token(
  27. Name='chanjunkai@166.com',
  28. Policy=json.dumps(Policy),
  29. DurationSeconds=7200
  30. )
  31. print(response)
  32. # test_get_credential()
  33. # exit()
  34. def getCredentials():
  35. import boto3
  36. REGION_NAME = 'us-east-1' # e.g
  37. import json
  38. sts = boto3.client(
  39. 'sts',
  40. aws_access_key_id='AKIA2E67UIMD45Y3HL53',
  41. aws_secret_access_key='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',
  42. region_name=REGION_NAME
  43. )
  44. Policy = {"Version": "2012-10-17",
  45. "Statement": [{"Effect": "Allow", "Action": "kinesisvideo:*", "Resource": [
  46. "arn:aws:kinesisvideo:us-east-1:697864307463:stream/wpy_stream/1573460250304"]}]}
  47. credentials = sts.get_federation_token(
  48. Name='chanjunkai@163.com', # or any unique text related to user
  49. Policy=json.dumps(Policy),
  50. DurationSeconds=3600,
  51. )
  52. print(credentials)
  53. access_key_id = credentials['Credentials']['AccessKeyId']
  54. session_token = credentials['Credentials']['SessionToken']
  55. secret_access_key = credentials['Credentials']['SecretAccessKey']
  56. res = {
  57. 'access_key_id': access_key_id,
  58. 'session_token': session_token,
  59. 'secret_access_key': secret_access_key,
  60. }
  61. print(res)
  62. # getCredentials()
  63. def test():
  64. print('test')
  65. import boto3
  66. REGION_NAME = 'us-east-1' # e.g
  67. import json
  68. crd = {'Credentials': {'AccessKeyId': 'ASIA2E67UIMDZ3G2JTGG', 'SecretAccessKey': 'hZLPMgOiOUR08uZhEorG7Hf2KURo+U62n8pz4h9J', 'SessionToken': 'FwoGZXIvYXdzEEsaDFDNHGJymzOcRe21LiLFARGel4C5k3cqtnon8+yrpzZW5+tTsUONkQlBVeM6XjIgn9LUmlwroGktRBAOLuNb++licd8bUugeCU9+XMoWivJi7c3B3G5LVbofxPqs6MPfXdx4XXVa7PtMZPCyqjIhoIWcbrNuY21j3j3Mj1oggdLxPF1qPiAL1auVW8cTvygaRr6X5wgGGl0dOvBLOfGJzyCIOyLQ4BjwNCFaT4awgfrfK7rYnKvBGUWcM5UEkJ6O6dIkCHb+eHCV9RwqosXBcSE4KNk6KLKtpvMFMin3p5wPsYYvAAJVwDmFUoPyRuKom8HL8mlya7/aCnAbIM5u5lPO7TionA==', 'Expiration': 3600}, 'FederatedUser': {'FederatedUserId': '697864307463:chanjunkai@166.com', 'Arn': 'arn:aws:sts::697864307463:federated-user/chanjunkai@166.com'}, 'PackedPolicySize': 8, 'ResponseMetadata': {'RequestId': '65904087-9678-4c25-9042-fbb1b165a928', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '65904087-9678-4c25-9042-fbb1b165a928', 'content-type': 'text/xml', 'content-length': '1138', 'date': 'Thu, 12 Mar 2020 01:56:02 GMT'}, 'RetryAttempts': 0}}
  69. # s3_resource = boto3.resource(
  70. s3_resource = boto3.client(
  71. 's3',
  72. aws_access_key_id=crd['Credentials']['AccessKeyId'],
  73. aws_secret_access_key=crd['Credentials']['SecretAccessKey'],
  74. aws_session_token=crd['Credentials']['SessionToken'],
  75. )
  76. response = s3_resource.put_object(
  77. Body='xxxxx',
  78. Key='test1111111111111.log',
  79. Bucket='azvod1',
  80. # Expires=datetime()
  81. )
  82. print(response)
  83. test()