以前のドキュメントでは、RAMユーザー機能のみを使用しました。これらのユーザーアカウントは、長期の通常使用を想定しています。情報漏えい発生時にRAMユーザー権限を迅速に取り消すことができない場合、これは深刻なリスクとなります。
前の例では、開発者のアプリケーションでユーザーがOSSバケット am-test-app にデータをアップロードでき、現在、アプリケーションユーザーの数が多いと仮定します。この場合、アプリケーションはどのように多くのユーザーにデータアップロード権限を安全に付与し、複数のユーザー間でストレージの隔離をどのように確実に行うことができるでしょうか。
このようなシナリオでは、STSを使用して一時アクセス権限を付与する必要があります。 STSを使用すると、指定されたユーザーに最小限必要な権限のみを付与することで、それらのユーザーを制限する複雑なポリシーを指定できます。
ロールの作成
前のドキュメントの例に基づいて、アプリケーションユーザーは個人データを保存するためのバケット ram-test-app を持っています。ロールは次のように作成できます。
前のドキュメントで説明したプロセスを使用して、ram_test_app という名前のRAMユーザーアカウントを作成します。このアカウントは、引き受けるロールの権限を継承するため、このアカウントには権限を付与しないでください。
ロールを作成します。ここでは、ユーザーが読み取り操作を実行し、ファイルをアップロードするための 2 つのロールを作成する必要があります。
RAMコンソールにログオンし、 を選択します。
ロールタイプを選択します。ここでは、[ユーザーロール] を選択する必要があります。

ロールタイプ情報を入力します。このロールは自身のAlibaba Cloudアカウントによって使用されているため、デフォルト設定を使用します。
基本的なロール情報を設定します。

ロールの作成時には、権限がありませんでした。したがって、前述のプロセスを使用してカスタム権限付与ポリシーを作成する必要があります。権限付与ポリシーは次のとおりです。
{ "Version": "1", "Statement": [ { "Effect": "allow ", "Action": [ "oss:ListObjects", "Oss: GetObject" ], "Resource": [ "acs:oss:*:*:ram-test-app", "acs:oss:*:*:ram-test-app/*" ] } ] }これは、ram-test-app に対する読み取り専用権限を示しています。

ポリシーが確立された後、ロール管理ページでロール RamTestAppReadOnly に ram-test-app 読み取り専用権限を付与します。


同じ手順を実行してロール RamTestAppWrite を作成し、カスタム権限付与ポリシーを使用して ram-test-app 書き込み権限を付与します。権限付与ポリシーは次のとおりです。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:DeleteObject", "oss:ListParts", "oss:AbortMultipartUpload", "oss:PutObject" ], "Resource": [ "acs:oss:*:*:ram-test-app", "acs:oss:*:*:ram-test-app/*" ] } ] }これで、ram-test-app に対する読み取り専用権限と書き込み権限を持つ 2 つのロール、RamTestAppReadOnly と RamTestAppWrite が作成されました。

一時アクセス認証
ロールを作成したら、それらを使用してOSSへの一時アクセス権限を付与できます。
準備
ロールを引き受けるには、権限付与が必要です。そうでない場合、どのRAMユーザーもこれらのロールを引き受けることができ、予測できないリスクにつながる可能性があります。したがって、対応するロールを引き受けるには、RAMユーザーは明示的に設定された権限を持っている必要があります。
権限付与ポリシー管理で 2 つのカスタム権限付与ポリシーを作成します。

{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Resource": "acs:ram::1894******722283:role/ramtestappreadonly" } ], "Version": "1" }同じ方法を使用して、別のカスタム権限付与ポリシーを作成します。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Resource": "acs:ram::1894******722283:role/ramtestappwrite" } ], "Version": "1" }ここで、Resource の後に入力された内容は、ロールのIDです。ロール ID は、 にあります。
2 つの権限付与ポリシーをアカウント ram_test_app に付与します。
STSを使用してアクセス権限を付与する
これで、STSを使用してアクセス権限を正式に付与するためのプラットフォームの準備が整いました。
ここでは、シンプルな STS Python コマンドラインツール sts.py を使用します。呼び出し方法は次のとおりです。
$python ./sts.py AssumeRole RoleArn=acs:ram::1894******722283:role/ramtestappreadonly RoleSessionName=usr001 Policy='{"Version":"1","Statement":[{"Effect":"Allow","Action":["oss:ListObjects","oss:GetObject"],"Resource":["acs:oss:*:*:ram-test-app","acs:oss:*:*:ram-test-app/*"]}]}' DurationSeconds=1000 --id=id --secret=secretRoleArn:引き受けるロールのIDを示します。ロール ID は、 にあります。
RoleSessionName:一時認証情報の名前を示します。一般的に、異なるアプリケーションユーザーでこれを区切ることをお勧めします。
Policy:権限制限を示し、ロールが引き受けられたときに追加されます。
DurationSeconds:一時認証情報の有効時間を秒単位で示します。最小値は 900 で、最大値は 3600 です。
id と secret:ロールを引き受けるRAMユーザーのAccessKeyを示します。
ここで、「Policy」の意味について説明する必要があります。ここで説明するポリシーは、ロールが引き受けられた後、一時認証情報の権限を制限するために使用されます。最終的に、一時認証情報によって取得される権限は、ロールと渡されたポリシーの重複する権限です。
ロールが引き受けられたときに、ポリシーを入力して柔軟性を高めることができます。たとえば、ファイルをアップロードするときに、異なるユーザーに対して異なるアップロードパス制限を追加できます。これは、次の例に示されています。
それでは、STS機能をテストしてみましょう。バケットをテストするには、まずコンソールを使用して、ファイル test.txt を ram-test-app に配置し、内容は ststest とします。
まず、RAMユーザーアカウント ram_test_app を使用してファイルに直接アクセスします。次に、AccessKey をテストで使用した独自のアクセスキーに置き換えます。
[admin@NGIS-CWWF344M01C /home/admin/oss_test]
$./osscmd get oss://ram-test-app/test.txt test.txt --host=oss-cn-hangzhou.aliyuncs.com -i oOhue******Frogv -k OmVwFJO3qcT0******FhOYpg3p0KnA
Error Headers:
[('content-length', '229'), ('server', 'AliyunOSS'), ('connection', 'keep-alive'), ('x-oss-request-id', '564A94D444F4D8B2225E4AFE'), ('date', 'Tue, 17 Nov 2015 02:45:40 GMT'), ('content-type', 'application/xml')]
Error Body:
<? xml version="1.0" encoding="UTF-8"? >
<Error>
<Code>AccessDenied</Code>
<Message>AccessDenied</Message>
<RequestId>564A94D444F4D8B2225E4AFE</RequestId>
<HostId>ram-test-app.oss-cn-hangzhou.aliyuncs.com</HostId>
</Error>
Error Status:
403
get Failed!
[admin@NGIS-CWWF344M01C /home/admin/oss_test]
$./osscmd put test.txt oss://ram-test-app/test.txt --host=oss-cn-hangzhou.aliyuncs.com -i oOhue******Frogv -k OmVwFJO3qcT0******FhOYpg3p0KnA
100% Error Headers:
[('content-length', '229'), ('server', 'AliyunOSS'), ('connection', 'keep-alive'), ('x-oss-request-id', '564A94E5B1119B445B9F8C3A'), ('date', 'Tue, 17 Nov 2015 02:45:57 GMT'), ('content-type', 'application/xml')]
Error Body:
<? xml version="1.0" encoding="UTF-8"? >
<Error>
<Code>AccessDenied</Code>
<Message>AccessDenied</Message>
<RequestId>564A94E5B1119B445B9F8C3A</RequestId>
<HostId>ram-test-app.oss-cn-hangzhou.aliyuncs.com</HostId>
</Error>
Error Status:
403
put Failed!アクセス権限がないため、RAMユーザーアカウント ram_test_app を使用したアクセス試行は失敗します。
一時認証を使用してダウンロードする
それでは、STSを使用してファイルをダウンロードします。理解しやすいように、入力されたポリシーとロールポリシーは同じです。有効期限は 3600 秒に設定され、ここでのアプリケーションユーザーは usr001 です。手順は次のとおりです。
STSを使用して一時認証情報を取得します。
[admin@NGIS-CWWF344M01C /home/admin/oss_test] $python ./sts.py AssumeRole RoleArn=acs:ram::1894******722283:role/ramtestappreadonly RoleSessionName=usr001 Policy='{"Version":"1","Statement":[{"Effect":"Allow","Action":["oss:ListObjects","oss:GetObject"],"Resource":["acs:oss:*:*:ram-test-app","acs:oss:*:*:ram-test-app/*"]}]}' --id=oOhue******Frogv --secret=OmVwFJO3qcT0******FhOYpg3p0KnA https://sts.aliyuncs.com/?SignatureVersion=1.0&Format=JSON&Timestamp=2015-11-17T03%3A07%3A25Z&RoleArn=acs%3Aram%3A%3A1894xxxxxx722283%3Arole%2Framtestappreadonly&RoleSessionName=usr001&AccessKeyId=oOhu******3Frogv&Policy=%7B%22Version%22%3A%221%22%2C%22Statement%22%3A%5B%7B%22Effect%22%3A%22Allow%22%2C%22Action%22%3A%5B%22oss%3AListObjects%22%2C%22oss%3AGetObject%22%5D%2C%22Resource%22%3A%5B%22acs%3Aoss%3A%2A%3A%2A%3Aram-test-app%22%2C%22acs%3Aoss%3A%2A%3A%2A%3Aram-test-app%2F%2A%22%5D%7D%5D%7D&SignatureMethod=HMAC-SHA1&Version=2015-04-01&Signature=bshxPZpwRJv5ch3SjaBiXLodwq0%3D&Action=AssumeRole&SignatureNonce=53e1be9c-8cd8-11e5-9b86-008cfa5e4938 { "AssumedRoleUser": { "Arn": "acs:ram::1894******722283:role/ramtestappreadonly/usr001", "AssumedRoleId": "317446******426289:usr001" }, "Credentials": { "AccessKeyId": "STS. 3mQEbNf******wa180Le", "AccessKeySecret": "B1w7rCbR4dzGwNYJ******3PiPqKZ3gjQhAxb6mB", "Expiration": "2015-11-17T04:07:25Z", "SecurityToken": "CAESvAMIARKAASQQ******7683CGlhdGsv2/di8uI+X******DxM5FTd0fp5wpPK/7UctYH2MJ///c4yMN1PUCcEHI1zppCINmpDG2XeNA3OS16JwS6ESmI50sHyWBmsYkCJW15gXnfhz/OK+mSp1bYxlfB33qfgCFe97Ijeuj8RMgqFx0Hny2BzGhhTVFMuM21RRWJOZnR5Yzl1T3dhMTgwTGUiEjMxNzQ0NjM0NzY1NzQyNjI4OSoGdXNyMDAxMJTrgJ2RKjoGUnNhTUQ1QpsBCgExGpUBCgVBbG******CgxBY3Rpb25FcXVhbHMSBkFjdGlvbhogCg9vc3M6TGlzdE9iamVjdHMKDW9zczpHZXRPYmplY3QSUgoOUmVzb3VyY2VFcXVhbHMSCFJlc291cmNlGjYKGGFjczpvc3M6KjoqOnJhbS10ZXN0LWFwcAoaYWNzOm9zczoq******FtLXRlc3QtYXBwLypKEDE4OTQxODk3Njk3MjIyODNSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzE3NDQ2MzQ3NjU3NDI2Mjg5chJyYW10ZXN0YXBwcmVhZG9ubHk=" }, "RequestId": "8C009F64-F19D-4EC1-A3AD-7A718CD0B49B" }一時認証情報を使用してファイルをダウンロードします。ここで、sts_token はSTSによって返されたSecurityTokenです。
[admin@NGIS-CWWF344M01C /home/admin/oss_test] $./osscmd get oss://ram-test-app/test.txt test.txt --host=oss-cn-hangzhou.aliyuncs.com -i STS. 3mQEbNf******wa180Le -k B1w7rCbR4dzGwNYJ******3PiPqKZ3gjQhAxb6mB --sts_token=CAESvAMIARKAASQQ******7683CGlhdGsv2/di8uI+X******DxM5FTd0fp5wpPK/7UctYH2MJ///c4yMN1PUCcEHI1zppCINmpDG2XeNA3OS16JwS6ESmI50sHyWBmsYkCJW15gXnfhz/OK+mSp1bYxlfB33qfgCFe97Ijeuj8RMgqFx0Hny2BzGhhTVFMuM21RRWJOZnR5Yzl1T3dhMTgwTGUiEjMxNzQ0NjM0NzY1NzQyNjI4OSoGdXNyMDAxMJTrgJ2RKjoGUnNhTUQ1QpsBCgExGpUBCgVBbG******CgxBY3Rpb25FcXVhbHMSBkFjdGlvbhogCg9vc3M6TGlzdE9iamVjdHMKDW9zczpHZXRPYmplY3QSUgoOUmVzb3VyY2VFcXVhbHMSCFJlc291cmNlGjYKGGFjczpvc3M6KjoqOnJhbS10ZXN0LWFwcAoaYWNzOm9zczoq******FtLXRlc3QtYXBwLypKEDE4OTQxODk3Njk3MjIyODNSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzE3NDQ2MzQ3NjU3NDI2Mjg5chJyYW10ZXN0YXBwcmVhZG9ubHk= 100% The object test.txt is downloaded to test.txt, please check. 0.061(s) elapsedご覧のとおり、一時認証情報を使用してファイルをダウンロードできます。次に、それらを使用してファイルをアップロードできるかどうかをテストします。
[admin@NGIS-CWWF344M01C /home/admin/oss_test] $./osscmd put test.txt oss://ram-test-app/test.txt --host=oss-cn-hangzhou.aliyuncs.com -i STS. 3mQEbNf******wa180Le -k B1w7rCbR4dzGwNYJ******3PiPqKZ3gjQhAxb6mB --sts_token=CAESvAMIARKAASQQ******7683CGlhdGsv2/di8uI+X******DxM5FTd0fp5wpPK/7UctYH2MJ///c4yMN1PUCcEHI1zppCINmpDG2XeNA3OS16JwS6ESmI50sHyWBmsYkCJW15gXnfhz/OK+mSp1bYxlfB33qfgCFe97Ijeuj8RMgqFx0Hny2BzGhhTVFMuM21RRWJOZnR5Yzl1T3dhMTgwTGUiEjMxNzQ0NjM0NzY1NzQyNjI4OSoGdXNyMDAxMJTrgJ2RKjoGUnNhTUQ1QpsBCgExGpUBCgVBbG******CgxBY3Rpb25FcXVhbHMSBkFjdGlvbhogCg9vc3M6TGlzdE9iamVjdHMKDW9zczpHZXRPYmplY3QSUgoOUmVzb3VyY2VFcXVhbHMSCFJlc291cmNlGjYKGGFjczpvc3M6KjoqOnJhbS10ZXN0LWFwcAoaYWNzOm9zczoq******FtLXRlc3QtYXBwLypKEDE4OTQxODk3Njk3MjIyODNSBTI2ODQyWg9Bc3N1bWVkUm9sZVVzZXJgAGoSMzE3NDQ2MzQ3NjU3NDI2Mjg5chJyYW10ZXN0YXBwcmVhZG9ubHk= 100% Error Headers: [('content-length', '254'), ('server', 'AliyunOSS'), ('connection', 'keep-alive'), ('x-oss-request-id', '564A9A2A1790CF0F53C15C82'), ('date', 'Tue, 17 Nov 2015 03:08:26 GMT'), ('content-type', 'application/xml')] Error Body: <? xml version="1.0" encoding="UTF-8"? > <Error> <Code>AccessDenied</Code> <Message>Access denied by authorizer's policy.</Message> <RequestId>564A9A2A1790CF0F53C15C82</RequestId> <HostId>ram-test-app.oss-cn-hangzhou.aliyuncs.com</HostId> </Error> Error Status: 403 put Failed!ファイルのアップロードは失敗します。これは、引き受けられたロールにダウンロード権限しかないためです。
一時認証を使用してアップロードする
それでは、STSを使用してファイルをアップロードしてみましょう。手順は次のとおりです。
STS一時認証情報を取得します。アプリケーションユーザーは usr001 です。
[admin@NGIS-CWWF344M01C /home/admin/oss_test] $python ./sts.py AssumeRole RoleArn=acs:ram::1894******722283:role/ramtestappwrite RoleSessionName=usr001 Policy='{"Version":"1","Statement":[{"Effect":"Allow","Action":["oss:PutObject"],"Resource":["acs:oss:*:*:ram-test-app/usr001/*"]}]}' --id=oOhue******Frogv --secret=OmVwFJO3qcT0******FhOYpg3p0KnA https://sts.aliyuncs.com/?SignatureVersion=1.0&Format=JSON&Timestamp=2015-11-17T03%3A16%3A10Z&RoleArn=acs%3Aram%3A%3A1894xxxxxx722283%3Arole%2Framtestappwrite&RoleSessionName=usr001&AccessKeyId=oOhu******3Frogv&Policy=%7B%22Version%22%3A%221%22%2C%22Statement%22%3A%5B%7B%22Effect%22%3A%22Allow%22%2C%22Action%22%3A%5B%22oss%3APutObject%22%5D%2C%22Resource%22%3A%5B%22acs%3Aoss%3A%2A%3A%2A%3Aram-test-app%2Fusr001%2F%2A%22%5D%7D%5D%7D&SignatureMethod=HMAC-SHA1&Version=2015-04-01&Signature=Y0OPUoL1PrCqX4X6A3%2FJvgXuS6c%3D&Action=AssumeRole&SignatureNonce=8d0798a8-8cd9-11e5-9f49-008cfa5e4938 { "AssumedRoleUser": { "Arn": "acs:ram::1894******722283:role/ramtestappwrite/usr001", "AssumedRoleId": "35540******0029428:usr001" }, "Credentials": { "AccessKeyId": "STS.rtfx13******NlIJlS4U", "AccessKeySecret": "2fsaM8E2maB2dn******wpsKTyK4ajo7TxFr0zIM", "Expiration": "2015-11-17T04:16:10Z", "SecurityToken": "CAESkwMIARKAAUh3/Uzcg13******y0IZjGewMpg31ITxCleBFU1eO/3Sgpudid+GVs+Olvu1vXJn******a8azKJKtzV0oKSy+mwUrxSvUSRVDntrs78CsNfWoOJUMJKjLIxdWnGi1pgxJCBzNZ2YV/6ycTaZySSE1V6kqQ7A+GPwY******LpdGhhTVFMucnRmeDEzRFlNVWJjTmxJSmxTNFUiEjM1NTQwNzg0NzY2MDAyOTQyOCoGdXNyMDAxMOPzoJ2RKjoGUnNhTUQ1QnYKATEacQoFQWxsb3cSJwoMQWN0aW9uRXF1YWxzEgZBY3Rpb24aDwoNb3NzOlB1dE9iamVjdBI/Cg5SZXNvdXJjZUVxdWFscxIIUmVzb3VyY2UaIwohYWNzOm9zczoqOio6cmFtLXRlc3Qt******VzcjAwMS8qShAxODk0MTg5NzY5NzIyMjgzUgUyNjg0MloPQXNzdW1lZFJvbGVVc2VyYABqEjM1NTQwNzg0NzY2MDAyOTQyOHIPcmFtdGVzdGFwcHdyaXRl" }, "RequestId": "19407707-54B2-41AD-AAF0-FE87E8870B0D" }認証情報を使用してアップロードとダウンロードができるかどうかをテストしてみましょう。
[admin@NGIS-CWWF344M01C /home/admin/oss_test] $./osscmd get oss://ram-test-app/test.txt test.txt --host=oss-cn-hangzhou.aliyuncs.com -i STS.rtfx13******NlIJlS4U -k 2fsaM8E2maB2dn******wpsKTyK4ajo7TxFr0zIM --sts_token=CAESkwMIARKAAUh3/Uzcg13******y0IZjGewMpg31ITxCleBFU1eO/3Sgpudid+GVs+Olvu1vXJn******a8azKJKtzV0oKSy+mwUrxSvUSRVDntrs78CsNfWoOJUMJKjLIxdWnGi1pgxJCBzNZ2YV/6ycTaZySSE1V6kqQ7A+GPwY******LpdGhhTVFMucnRmeDEzRFlNVWJjTmxJSmxTNFUiEjM1NTQwNzg0NzY2MDAyOTQyOCoGdXNyMDAxMOPzoJ2RKjoGUnNhTUQ1QnYKATEacQoFQWxsb3cSJwoMQWN0aW9uRXF1YWxzEgZBY3Rpb24aDwoNb3NzOlB1dE9iamVjdBI/Cg5SZXNvdXJjZUVxdWFscxIIUmVzb3VyY2UaIwohYWNzOm9zczoqOio6cmFtLXRlc3Qt******VzcjAwMS8qShAxODk0MTg5NzY5NzIyMjgzUgUyNjg0MloPQXNzdW1lZFJvbGVVc2VyYABqEjM1NTQwNzg0NzY2MDAyOTQyOHIPcmFtdGVzdGFwcHdyaXRl Error Headers: [('content-length', '254'), ('server', 'AliyunOSS'), ('connection', 'keep-alive'), ('x-oss-request-id', '564A9C31FFFC811F24B6E7E3'), ('date', 'Tue, 17 Nov 2015 03:17:05 GMT'), ('content-type', 'application/xml')] Error Body: <? xml version="1.0" encoding="UTF-8"? > <Error> <Code>AccessDenied</Code> <Message>Access denied by authorizer's policy.</Message> <RequestId>564A9C31FFFC811F24B6E7E3</RequestId> <HostId>ram-test-app.oss-cn-hangzhou.aliyuncs.com</HostId> </Error> Error Status: 403 get Failed! [admin@NGIS-CWWF344M01C /home/admin/oss_test] $./osscmd put test.txt oss://ram-test-app/test.txt --host=oss-cn-hangzhou.aliyuncs.com -i STS.rtfx13******NlIJlS4U -k 2fsaM8E2maB2dn******wpsKTyK4ajo7TxFr0zIM --sts_token=CAESkwMIARKAAUh3/Uzcg13******y0IZjGewMpg31ITxCleBFU1eO/3Sgpudid+GVs+Olvu1vXJn******a8azKJKtzV0oKSy+mwUrxSvUSRVDntrs78CsNfWoOJUMJKjLIxdWnGi1pgxJCBzNZ2YV/6ycTaZySSEV6kqQ7A+GPwY******LpdGhhTVFMucnRmeDEzRFlNVWJjTmxJSmxTNFUiEjM1NTQwNzg0NzY2MDAyOTQyOCoGdXNyMDAxMOPzoJ2RKjoGUnNhTUQ1QnYKATEacQoFQWxsb3cSJwoMQWN0aW9uRXF1YWxzEgZBY3Rpb24aDwoNb3NzOlB1dE9iamVjdBI/Cg5SZXNvdXJjZUVxdWFscxIIUmVzb3VyY2UaIwohYWNzOm9zczoqOio6cmFtLXRlc3Qt******VzcjAwMS8qShAxODk0MTg5NzY5NzIyMjgzUgUyNjg0MloPQXNzdW1lZFJvbGVVc2VyYABqEjM1NTQwNzg0NzY2MDAyOTQyOHIPcmFtdGVzdGFwcHdyaXRl 100% Error Headers: [('content-length', '254'), ('server', 'AliyunOSS'), ('connection', 'keep-alive'), ('x-oss-request-id', '564A9C3FB8DE437A91B16772'), ('date', 'Tue, 17 Nov 2015 03:17:19 GMT'), ('content-type', 'application/xml')] Error Body: <? xml version="1.0" encoding="UTF-8"? > <Error> <Code>AccessDenied</Code> <Message>Access denied by authorizer's policy.</Message> <RequestId>564A9C3FB8DE437A91B16772</RequestId> <HostId>ram-test-app.oss-cn-hangzhou.aliyuncs.com</HostId> </Error> Error Status: 403 put Failed!test.txt のアップロードは失敗します。このドキュメントの冒頭で説明した入力されたポリシーをフォーマットしました。それは次のとおりです。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "oss:PutObject" ], "Resource": [ "acs:oss:*:*:ram-test-app/usr001/*" ] } ] }このポリシーは、ユーザーが usr001/ のようなファイルのみを ram-test-app バケットにアップロードすることを許可されていることを示しています。アプリケーションユーザーが usr002 の場合、ポリシーを変更して usr002/ のようなファイルのアップロードのみを許可できます。異なるアプリケーションユーザーに対して異なるポリシーを設定することにより、異なるアプリケーションユーザーのストレージスペースを隔離できます。
テストを再試行し、アップロード先を ram-test-app/usr001/test.txt として指定します。
[admin@NGIS-CWWF344M01C /home/admin/oss_test] $./osscmd put test.txt oss://ram-test-app/usr001/test.txt --host=oss-cn-hangzhou.aliyuncs.com -i STS.rtfx13******NlIJlS4U -k 2fsaM8E2maB2dn******wpsKTyK4ajo7TxFr0zIM --sts_token=CAESkwMIARKAAUh3/Uzcg13******y0IZjGewMpg31ITxCleBFU1eO/3Sgpudid+GVs+Olvu1vXJn******a8azKJKtzV0oKSy+mwUrxSvUSRVDntrs78CsNfWoOJUMJKjLIxdWnGi1pgxJCBzNZ2YV/6ycTaZySSE1V6kqQ7A+GPwY******LpdGhhTVFMucnRmeDEzRFlNVWJjTmxJSmxTNFUiEjM1NTQwNzg0NzY2MDAyOTQyOCoGdXNyMDAxMOPzoJ2RKjoGUnNhTUQ1QnYKATEacQoFQWxsb3cSJwoMQWN0aW9uRXF1YWxzEgZBY3Rpb24aDwoNb3NzOlB1dE9iamVjdBI/Cg5SZXNvdXJjZUVxdWFscxIIUmVzb3VyY2UaIwohYWNzOm9zczoqOio6cmFtLXRlc3Qt******VzcjAwMS8qShAxODk0MTg5NzY5NzIyMjgzUgUyNjg0MloPQXNzdW1lZFJvbGVVc2VyYABqEjM1NTQwNzg0NzY2MDAyOTQyOHIPcmFtdGVzdGFwcHdyaXRl 100% Object URL is: http://ram-test-app.oss-cn-hangzhou.aliyuncs.com/usr001%2Ftest.txt Object abstract path is: oss://ram-test-app/usr001/test.txt ETag is "946A0A1AC8245696B9C6A6F35942690B" 0.071(s) elapsedアップロードは成功です。
まとめ
このセクションでは、STSを使用してOSSへの一時アクセス認証をユーザーに付与する方法について説明しました。典型的なモバイル開発シナリオでは、異なるアプリケーションユーザーがアプリケーションにアクセスする必要がある場合、STSを使用してOSSにアクセスするための一時認証を付与できます。一時認証は有効期限を設定できるため、リークによる危険を大幅に軽減できます。一時認証を取得するときに、異なるアプリケーションユーザーに対して異なる認証ポリシーを入力して、アクセス権限を制限できます。たとえば、ユーザーがアクセスできるオブジェクトパスを制限します。これにより、異なるアプリケーションユーザーのストレージスペースが隔離されます。