アクセスポイントを使用すると、共有データセットへの大規模なデータアクセス管理を簡素化できます。このトピックでは、アクセスポイントを作成する方法について説明します。
前提条件
VPCからのみアクセスできるアクセスポイントを作成する場合、仮想プライベートクラウド(VPC)が作成されます。詳細については、「VPC の作成と管理」をご参照ください。
RAM ユーザーを使用してアクセスポイントを作成する場合、RAM ユーザーには次の権限が付与されます。
oss:CreateAccessPoint、oss:GetAccessPoint、oss:DeleteAccessPoint、oss:ListAccessPoints、oss:PutAccessPointPolicy、oss:GetAccessPointPolicy、oss:DeleteAccessPointPolicy、oss:PutBucketPolicy、oss:GetBucketPolicy、oss:DeleteBucketPolicy。詳細については、「RAM ユーザーへのカスタムポリシーのアタッチ」をご参照ください。
シナリオ例
あなたの会社は、ビッグデータ分析と管理のために、Alibaba Cloud アカウント 137918634953xxxx の examplebucket バケットに収集されたデータを保存しています。あなたはアカウントオーナーであり、10 の業務部門に examplebucket バケットへのアクセスを許可したいと考えています。
ユニット 1 ~ 3 は、インターネット経由で examplebucket/dir1/ ディレクトリ内のオブジェクトに対して読み取り操作のみを実行できるようにします。
ユニット 4 は、インターネット経由でバケット内のディレクトリに対して読み取りおよび書き込み操作を実行できるようにします。
ユニット 5 ~ 10 は、特定の VPC からのみ examplebucket/dir2/ ディレクトリ内のオブジェクトに対して読み取りおよび書き込み操作を実行できるようにします。
上記のアクセス制御要件を満たすようにアクセスポイントを設定できます。
ユニット 1 ~ 3、ユニット 4、ユニット 5 ~ 10 に個別にアクセスポイントを作成し、アクセスポイントに権限を割り当てる必要があります。次に、対応するアクセスポイントをユニットに提供します。このようにして、ユニットは対応するアクセスポイントを使用して、対象となるデータにアクセスできます。
方法
OSS コンソールの使用
アクセスポイントの基本情報を設定します。
OSS コンソール にログインします。
左側のナビゲーションウィンドウで、[エンドポイントリスト]をクリックします。
[エンドポイントリスト]ページで、[エンドポイントの作成] をクリックします。
[エンドポイントの作成] パネルで、基本情報ステップで次のパラメーターを設定し、[次へ] をクリックします。
パラメーター
説明
例
エンドポイント名
アクセスポイントの名前を指定します。アクセスポイントの名前は、次の要件を満たしている必要があります。
名前は、Alibaba Cloud アカウントのリージョン内で一意である必要があります。
名前は -ossalias で終わることはできません。
名前には、小文字、数字、およびハイフン(-)のみを含めることができます。ハイフン(-)で開始または終了することはできません。
名前は 3 ~ 19 文字の長さでなければなりません。
ユニット 1 ~ 3: ap-01
ユニット 4: ap-02
ユニット 5 ~ 10: ap-03
バケット
ドロップダウンリストから、アクセスポイントを作成するバケットを選択します。1 つのバケットに最大 100 個のアクセスポイントを作成できます。
examplebucket
ネットワークソース
アクセスポイントのネットワークソースを選択します。
インターネット: バケット内のデータには、インターネットまたは内部ネットワーク経由でアクセスできます。
VPC: バケット内のデータには、特定の VPC 経由でのみアクセスできます。このオプションを選択した場合は、VPC ID を指定する必要があります。
重要アクセスポイントを使用して VPC を制限する場合は、選択した VPC のリージョンが、OSS でサポートされているゲートウェイエンドポイントのリージョンと一致していることを確認してください。一致しない場合、認証リクエストを対応する VPC に関連付けることができず、認証エラーが発生します。詳細については、「OSS でサポートされているゲートウェイエンドポイントのリージョン」をご参照ください。
アクセスポイントのネットワークソースが VPC の場合、OSS コンソールを使用して、アクセスポイントに関連付けられているバケット内のリソースにアクセスすることはできません。リソースにアクセスするには、OSS SDK を使用してアクセスポイントとバケットの内部エンドポイントを組み合わせます。
ユニット 1 ~ 3: インターネット
ユニット 4: インターネット
ユニット 5 ~ 10: VPC
アクセスポイントポリシーを設定します。
重要アクセスポイントポリシーは、アクセスポイントを使用して作成されたリクエストにのみ適用され、バケットで使用可能な他のアクセス方法には影響しません。
GUI でアクセスポリシーを追加する
[アクセスポイントポリシー] ステップで、パラメーターを構成します。次の表にパラメーターを示します。
パラメーター
説明
例
アクセスポイントポリシー
GUI で追加 を選択します。
該当なし
アクセスポイントの ARN
アクセスポイントの Alibaba Cloud リソースネーム(ARN)を指定します。フォーマット:
acs:oss:region:account UID:accesspoint/accessPointName/object/*。acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-01/object/*
関連リソース
アクセスポイントポリシーを適用するリソースを選択します。
バケット全体: アクセスポイントポリシーは、バケット内のすべてのリソースに適用されます。
指定されたリソース: バケットポリシーは、バケット内の特定のリソースにのみ適用されます。バケット内の特定のリソースに対して複数のアクセスポイントポリシーを設定できます。
ユニット 1 ~ 3: 特定のリソース
ユニット 4: バケット全体
ユニット 5 ~ 10: 特定のリソース
リソースパス
関連リソース を バケット全体 に設定した場合、リソースパスの値は
accesspoint/accessPointName/*形式で自動的に入力されるため、リソースパスを指定する必要はありません。関連リソース を 指定されたリソース に設定した場合、次の要件に基づいてリソースパス パラメーターを指定します。
ディレクトリレベルの承認
ディレクトリ内のすべてのサブディレクトリとオブジェクトへのアクセスを許可するには、ディレクトリ名にアスタリスク(*)を追加します。たとえば、abc という名前のディレクトリ内のすべてのサブディレクトリとオブジェクトへのアクセスを許可するには、abc/* と入力します。
オブジェクトレベルの承認
特定のオブジェクトへのアクセスを許可するには、バケット名を除くオブジェクトのフルパスを入力します。たとえば、abc ディレクトリにある myphoto.png という名前のオブジェクトへのアクセスを許可するには、abc/myphoto.png と入力します。
ユニット 1 ~ 3: accesspoint/ap-01/object/dir1/*
ユニット 4: accesspoint/ap-02/*
ユニット 5 ~ 10: accesspoint/ap-03/object/dir2/*
承認済みユーザー
権限を付与するアカウントのタイプを選択します。現在の Alibaba Cloud アカウントの RAM ユーザーのみが、特定のリソースにアクセスすることを承認できます。
[RAM ユーザー] を選択し、ドロップダウンリストから RAM ユーザーを選択します。複数の RAM ユーザーに権限を付与する場合は、検索ボックスに RAM ユーザー名のキーワードを入力してあいまい一致を実行することをお勧めします。
重要[RAM ユーザー] を選択する前に、バケットを管理する権限と RAM コンソールでの ListUsers 権限を持つ Alibaba Cloud アカウントまたは RAM ユーザーとして OSS コンソールにログインしていることを確認してください。そうでない場合、現在の Alibaba Cloud アカウントの RAM ユーザーを表示できません。RAM ユーザーに ListUsers 権限を付与する方法の詳細については、「RAM ユーザーへの権限の付与」をご参照ください。
ユニット 1 ~ 3: RAM ユーザー(UID: 26571698800555xxxx)
ユニット 4: RAM ユーザー(UID: 25770968794578xxxx)
ユニット 5 ~ 10: RAM ユーザー(UID: 26806658794579xxxx)
許可された操作
承認済み操作を指定するには、[基本設定] と [詳細設定] のいずれかの方法を使用できます。
基本設定
このオプションを選択した場合は、ビジネス要件に基づいて次の権限を設定します。各権限の右側にある
アイコンにポインターを合わせると、権限に対応する操作を表示できます。読み取り専用 (ListObject を除く): 承認済みユーザーはリソースを表示およびダウンロードできます。
読み取り専用 (ListObject を除く): 承認済みユーザーはリソースを表示、リスト、およびダウンロードできます。
読み書き: 承認済みユーザーはリソースに対して読み取りおよび書き込み操作を実行できます。
フルコントロール: 承認済みユーザーはリソースに対してすべての操作を実行できます。
アクセス拒否: 承認済みユーザーはリソースに対して操作を実行できません。
重要ユーザーに複数のバケットポリシーが設定されている場合、ユーザーはポリシーで設定されているすべての権限を持ちます。ただし、[承認済み操作] パラメーターが [アクセス拒否] に設定されているバケットポリシーが作成されている場合、このバケットポリシーが優先されます。たとえば、[承認済み操作] が [読み取り専用] に設定されている最初のバケットポリシーを設定し、[承認済み操作] が [読み取り/書き込み] に設定されている 2 番目のバケットポリシーを設定した場合、ユーザーには読み取り/書き込み権限が付与されます。[承認済み操作] が [アクセス拒否] に設定されている 3 番目のバケットポリシーを設定した場合、ユーザーはリソースへのアクセスを拒否されます。
読み取り専用(ListObject を除く)、読み取り専用(ListObject を含む)、読み取り/書き込み、およびフルアクセスの承認効果は許可であり、アクセス拒否の承認効果は拒否です。
詳細設定
このオプションを選択した場合は、次のパラメーターを設定する必要があります。
効果: [許可] または [拒否] を選択します。
操作: 許可または拒否する操作を指定します。操作カテゴリの詳細については、「OSS の RAM ポリシーの操作要素」をご参照ください。
ユニット 1 ~ 3: 読み取り専用(ListObject を含む)
ユニット 4: 読み取り/書き込み
ユニット 5 ~ 10: 読み取り/書き込み
[送信] をクリックします。
OSS がアクセスポイントを作成するには約 10 分かかります。
OSS はアクセスポイントのエイリアスを自動的に作成します。[アクセスポイント] ページで、アクセスポイントのエイリアスを表示できます。
アクセスポイント エイリアスは変更、削除、または無効にすることはできません。
ポリシー ステートメントを指定してアクセスポイント ポリシーを追加する
アクセス ポイント ポリシー構文で追加[アクセスポイントポリシー] の ステップで、 を選択します。
コードエディターで、次のポリシーを入力します。
ユニット 1 ~ 3 のアクセスポイント ポリシー
{ "Version": "1", "Statement": [{ "Effect": "Allow", // 許可 "Action": [ "oss:GetObject", // オブジェクトの取得 "oss:GetObjectAcl", // オブジェクト ACL の取得 "oss:ListObjects", // オブジェクトのリスト "oss:RestoreObject", // オブジェクトの復元 "oss:ListObjectVersions", // オブジェクトバージョンのリスト "oss:GetObjectVersion", // オブジェクトバージョンの取得 "oss:GetObjectVersionAcl", // オブジェクトバージョン ACL の取得 "oss:RestoreObjectVersion" // オブジェクトバージョンの復元 ], "Principal": [ "26571698800555xxxx" // RAM ユーザーの UID ], "Resource": [ "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-01/object/dir1/*" // アクセスポイントとリソースパス ] },{ "Effect": "Allow", // 許可 "Action": [ "oss:ListObjects", // オブジェクトのリスト "oss:GetObject" // オブジェクトの取得 ], "Principal": [ "26571698800555xxxx" // RAM ユーザーの UID ], "Resource": [ "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-01" // アクセスポイント ], "Condition": { "StringLike": { "oss:Prefix": [ "dir1/*" // プレフィックス条件 ] } } } ] }ユニット 4 のアクセスポイント ポリシー
{ "Version": "1", "Statement": [{ "Effect": "Allow", // 許可 "Action": [ "oss:GetObject", // オブジェクトの取得 "oss:PutObject", // オブジェクトの配置 "oss:GetObjectAcl", // オブジェクト ACL の取得 "oss:PutObjectAcl", // オブジェクト ACL の配置 "oss:ListObjects", // オブジェクトのリスト "oss:AbortMultipartUpload", // マルチパートアップロードの中止 "oss:ListParts", // パートのリスト "oss:RestoreObject", // オブジェクトの復元 "oss:ListObjectVersions", // オブジェクトバージョンのリスト "oss:GetObjectVersion", // オブジェクトバージョンの取得 "oss:GetObjectVersionAcl", // オブジェクトバージョン ACL の取得 "oss:RestoreObjectVersion" // オブジェクトバージョンの復元 ], "Principal": [ "25770968794578xxxx" // RAM ユーザーの UID ], "Resource": [ "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-02/object/*" // アクセスポイントとリソースパス ] },{ "Effect": "Allow", // 許可 "Action": [ "oss:ListObjects", // オブジェクトのリスト "oss:GetObject" // オブジェクトの取得 ], "Principal": [ "25770968794578xxxx" // RAM ユーザーの UID ], "Resource": [ "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-02" // アクセスポイント ], "Condition": { "StringLike": { "oss:Prefix": [ "*" // プレフィックス条件 ] } } } ] }ユニット 5 ~ 10 のアクセスポイント ポリシー
{ "Version": "1", "Statement": [{ "Effect": "Allow", // 許可 "Action": [ "oss:GetObject", // オブジェクトの取得 "oss:PutObject", // オブジェクトの配置 "oss:GetObjectAcl", // オブオブジェクト ACL の取得 "oss:PutObjectAcl", // オブジェクト ACL の配置 "oss:ListObjects", // オブジェクトのリスト "oss:AbortMultipartUpload", // マルチパートアップロードの中止 "oss:ListParts", // パートのリスト "oss:RestoreObject", // オブジェクトの復元 "oss:ListObjectVersions", // オブジェクトバージョンのリスト "oss:GetObjectVersion", // オブジェクトバージョンの取得 "oss:GetObjectVersionAcl", // オブジェクトバージョン ACL の取得 "oss:RestoreObjectVersion" // オブジェクトバージョンの復元 ], "Principal": [ "26806658794579xxxx" // RAM ユーザーの UID ], "Resource": [ "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-03/object/dir2/*" // アクセスポイントとリソースパス ] },{ "Effect": "Allow", // 許可 "Action": [ "oss:ListObjects", // オブジェクトのリスト "oss:GetObject" // オブジェクトの取得 ], "Principal": [ "26806658794579xxxx" // RAM ユーザーの UID ], "Resource": [ "acs:oss:cn-hangzhou:137918634953xxxx:accesspoint/ap-03" // アクセスポイント ], "Condition": { "StringLike": { "oss:Prefix": [ "dir2/*" // プレフィックス条件 ] } } } ] }[送信] をクリックします。
OSS がアクセスポイントを作成するには約 10 分かかります。
OSS はアクセスポイントのエイリアスを自動的に作成します。[アクセスポイント] ページで、アクセスポイントのエイリアスを表示できます。
アクセスポイント エイリアスは変更、削除、または無効にすることはできません。
バケットポリシーを使用して、アクセスポイントにアクセス制御を委任します。
[アクセスポイント] ページで、作成したアクセスポイントの名前をクリックします。
[構成管理] タブで、[アクセスポイントへのアクセス制御の委任] をクリックします。
[アクセスポイントへのアクセス制御の委任] パネルで、バケットポリシーを設定して、アクセスポイントにアクセス制御権限を委任します。
委任タイプ
説明
例
oss:DataAccessPointArn
指定されたアクセスポイントにアクセス制御権限を委任します。委任後、指定されたアクセスポイントのみが有効になります。
oss:DataAccessPointAccount
oss:AccessPointNetworkOrigin
ネットワークソースがインターネットまたは VPC であるアクセスポイントにアクセス制御権限を委任します。委任後、ネットワークソースがインターネットまたは VPC であるアクセスポイントのみが有効になります。
説明インターネットを選択した場合、インターネットおよび VPC 経由でアクセスできるアクセスポイントにアクセス制御権限が委任されます。
oss:DataAccessPointAccount
現在の Alibaba Cloud アカウントが所有するすべてのアクセスポイントにアクセス制御権限を委任します。委任後、Alibaba Cloud アカウントが所有するすべてのアクセスポイントが有効になります。
[ポリシーの生成] をクリックします。
ossutil の使用
ossutil を使用して、アクセスポイントを作成し、アクセスポイントポリシーを設定できます。インストールの詳細については、「ossutil のインストール」をご参照ください。
以下は、
examplebucketに関連付けられた 'ap-01' という名前のアクセスポイントを作成するためのコード例です。ossutil api create-access-point --bucket examplebucket --create-access-point-configuration "{\"AccessPointName\":\"ap-01\",\"NetworkOrigin\":\"internet\"}"このコマンドの詳細については、「create-access-point」をご参照ください。
以下は、
examplebucketに関連付けられた 'ap-01' のアクセスポイントポリシーを設定するためのコード例です。ossutil api put-access-point-policy --bucket examplebucket --access-point-name ap-01 --body "{\"Version\":\"1\",\"Statement\":[{\"Action\":[\"oss:PutObject\",\"oss:GetObject\"],\"Effect\":\"Deny\",\"Principal\":[\"27737962156157xxxx\"],\"Resource\":[\"acs:oss:cn-hangzhou:111933544165xxxx:accesspoint/$ap-01\",\"acs:oss:cn-hangzhou:111933544165xxxx:accesspoint/ap-01/object/*\"]}]}"このコマンドの詳細については、「put-access-point-policy」をご参照ください。
関連 API 操作
上記で説明した方法は、基本的に RESTful API に基づいて実装されており、ビジネスで高度なカスタマイズが必要な場合は、RESTful API を直接呼び出すことができます。API を直接呼び出すには、コードに署名計算を含める必要があります。
アクセスポイントを作成するための API 操作の詳細については、「CreateAccessPoint」をご参照ください。
アクセスポイントポリシーを設定するための API 操作の詳細については、「PutAccessPointPolicy」をご参照ください。
バケットポリシーを使用してアクセスポイントに権限を委任するための API 操作の詳細については、「PutBucketPolicy」をご参照ください。
次のステップ
アクセスポイントを作成したら、アクセスポイントのエイリアスを使用して関連データにアクセスできます。詳細については、「アクセスポイントの使用」をご参照ください。
FAQ
アクセスポイントのアクセスポイントポリシーを設定するときに、IP アドレス ホワイトリストを設定できますか?
はい。ポリシーステートメントを指定してアクセスポイントポリシーを設定し、アクセスポイントポリシーに "IpAddress": {"acs:SourceIp": ["xxx"]} を追加できます。