put-bucket-policy コマンドは、バケットポリシーを設定するために使用されます。これにより、現在の Alibaba Cloud アカウントまたは他の Alibaba Cloud アカウント (個人または複数の RAM ユーザーと RAM ロールを含む) に、バケット内に格納されているリソースへのアクセス権限が付与されます。
注記
バケットポリシーを設定するには、oss:PutBucketPolicy 権限が必要です。詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。
構文
ossutil api put-bucket-policy --bucket value --body value [flags]パラメーター | 型 | 説明 |
--bucket | string | アクセス制御ポリシーを設定するバケットの名前。 |
--body | string | アクセス権限を定義する JSON 形式のリクエスト本文。 |
put-bucket-policy コマンドは、PutBucketPolicy 操作に対応します。 パラメーターの詳細については、「PutBucketPolicy」をご参照ください。
バケットポリシーには、Version フィールドと Statement フィールドが含まれています。以下は例です。
{
"Version": "1",
"Statement": [
{
"Action": ["oss:PutObject", "oss:GetObject"],
"Effect": "Deny",
"Principal": ["1234567890"],
"Resource": ["acs:oss:*:1234567890:*/*"]
}
]
}Version: ポリシーのバージョン。デフォルト値: 1。Statement: ポリシーには、1 つ以上のステートメントの配列が含まれており、それぞれが一連の権限を定義します。Action:oss:PutObjectやoss:GetObjectなど、許可または拒否される操作のリストを指定します。Effect: ステートメントでアクセスを許可するか拒否するかを指定します。値:AllowまたはDeny。Principal: ポリシーが適用されるエンティティを指定します。この場合は、指定されたユーザーの UID。Resource: ポリシーが適用されるリソースの範囲を定義します。
VersionフィールドとStatementフィールドの詳細については、「バケットポリシーの一般的な例」をご参照ください。サポートされているグローバル コマンドライン オプションについては、「サポートされているグローバル コマンドライン オプション」をご参照ください。
例
examplebucket のアクセス制御ポリシーを設定して、PutObject 操作と GetObject 操作に必要な権限が特定のユーザーに付与されないように指定するコード例を以下に示します。
ossutil api put-bucket-policy --bucket examplebucket --body "{\"Version\":\"1\",\"Statement\":[{\"Action\":[\"oss:PutObject\",\"oss:GetObject\"],\"Effect\":\"Deny\",\"Principal\":[\"1234567890\"],\"Resource\":[\"acs:oss:*:1234567890:*/*\"]}]}"