このセクションでは別のシナリオを紹介します。 他のユーザーが最新のアプリを使用している場合は、個人用のバケットを使用して自分のアプリデータを保存することができます。 そのバケットが ram-test-app であるとします。 アクセス許可を分離することを考慮し、アプリケーションサーバーに対して、 ram-test-app へのアクセスを許可しないように設定する必要があります。つまり、アカウント ram_test_pub は ram-test-dev の読み取りのみが許可されます。 これは RAM 権限システムによっても実現できます。 手順は次のとおりです。

  1. システムには既定のバケットレベルのポリシーがないため、カスタマイズポリシーを作成する必要があります。

    バケットアクセスポリシーは次のとおりです。 詳しくは、「RAM ポリシーの詳細」および「OSS 権限付与に関するよくあるご質問」をご参照ください。

    {
    "Version": "1",
    "Statement": [
     {
       "Effect": "Allow",
       "Action": [
         "oss:ListObjects",
         "oss:GetObject"
       ],
       "Resource": [
         "acs:oss:*:*:ram-test-dev",
         "acs:oss:*:*:ram-test-dev/*"
       ]
     }
    ]
    }

    設定後、カスタマイズ権限付与ポリシーリスト内でポリシーを確認します。

  2. ユーザー権限付与管理で、選択した権限付与ポリシーリストにこのポリシーを追加します。 また、ユーザー管理権限付与ポリシーで、以前に許可されたすべての OSS 読み取り権限を取り消すことができます。 > >
  3. 設定した権限の有効性をテストします。
    • ram-test-dev のオブジェクトにアクセスします。
      $./osscmd get oss://ram-test-dev/test.txt test.txt --host=oss-cn-hangzhou.aliyuncs.com -i oOhue******Frogv -k OmVwFJO3qcT0******FhOYpg3p0KnA
      100% The object test.txt is downloaded to test.txt, please check.
      0.047(s) elapsed
    • ram-test-app 内のオブジェクトにはアクセスできません。
      $./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', '5646ED53F9EEA2F3324191A2'), ('date', 'Sat, 14 Nov 2015 08:14:11 GMT'), ('content-type', 'application/xml')]
       Error Body:
       <? xml version="1.0" encoding="UTF-8"? >
       <Error>
         <Code>AccessDenied</Code>
         <Message>AccessDenied</Message> 
         <RequestId>5646ED53F9EEA2F3324191A2</RequestId>
         <HostId>ram-test-app.oss-cn-hangzhou.aliyuncs.com</HostId>
         </Error>
       Error Status:
       403
       get Failed!
    • ファイルは oss-test-app にアップロードできません。
      $./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', '5646ED7BB8DE437A912DC7A8'), ('date', 'Sat, 14 Nov 2015 08:14:51 GMT'), ('content-type', 'application/xml')]
       Error Body:
       <? XML version = "1.0" encoding = "UTF-8 "? >
       <Error> 
         <Code>AccessDenied</Code> 
         <Message>AccessDenied</Message>
         <RequestId>5646ED7BB8DE437A912DC7A8</RequestId>
         <HostId>ram-test-app.oss-cn-hangzhou.aliyuncs.com</HostId>
       </Error>
       Error status:
       403
       put Failed!

    上記の設定を使用し、ram-test-dev と ram-test-app のアクセス許可は正しく分離されました。

    前述のセクションでは、サブアカウントのアクセス許可制御機能を使用することで権限を分離し、情報漏洩の潜在的なリスクを最小限に抑える方法について説明しました。

    より複雑なアクセス制御を実装したい場合は、「RAM ユーザーガイド」をご参照ください。