مشاهدهی تنظیمات موجود
میتوان با دستور get-bucket-policy قاعدهی دسترسی یا policy که برای یک سبد تعریف شده را دریافت کرد. (برای آشنایی بیشتر با ابزار aws به راهنمای کار با cli مراجعه کنید.)
aws --endpoint http://ARCHIVE_ENDPOINT/ s3api get-bucket-policy --bucket
BUCKET_NAME_HERE
قاعدهی دسترسی در فرمت json تعریف میشود که در رابطه با آن در ادامه توضیح خواهیم داد. به صورت پیشفرض هیچ قاعدهی دسترسی برای سبدها تنظیم نشده است.
تغییر تنظیمات
میتوان با دستور put-bucket-policy برای یک سبد یک قاعدهی دسترسی یا policy تعریف کرد.
نکته: تنظیم قاعدهی جدید، قواعد قبلی را از بین میبرد. بنابراین قبل از استفاده از دستور put-bucket-policy با استفاده از دستور get-bucket-policy، قواعد موجود را دریافت کرده و در صورت نیاز قواعد موجود را در فایل جدید وارد کنید.
aws --endpoint http://ARCHIVE_ENDPOINT/ s3api put-bucket-policy --bucket
BUCKET_NAME_HERE --policy file://PATH_TO_POLICY_JSON
تنظیمات قواعد دسترسی در قالب یک فایل json و به عنوان ورودی به دستور بالا داده میشوند. در ادامه چند مثال از قواعد پرکاربرد را مرور میکنیم.
دسترسی عمومی خواندن برای تمام اشیای داخل سبد
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::*"
}
]
}
دسترسی عمومی خواندن برای تمام اشیای داخل یک پوشه خاص
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKET_NAME/PATH/*"
}
]
}
افزودن چند قاعده
مثال زیر دسترسی خواندن را برای تمام سبد غیر از یک پوشهی خاص باز میکند. (آبجکتهای داخل پوشهی مورد نظر برای هیچ کاربری قابل خواندن نخواهد بود.)
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "*"
},
{
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKET_NAME/PATH/*"
}
]
}
دسترسی کامل به یک کاربر خاص
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam:::user/WORKSPACE_ID:USER_ID"
},
"Action": "*",
"Resource": "arn:aws:s3:::*"
}
]
}
دسترسی چند عملیات خاص به چند کاربر مشخص
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam:::user/WORKSPACE_ID:USER_ID_1",
"arn:aws:iam:::user/WORKSPACE_ID:USER_ID_2"
]
},
"Action": [
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::*"
}
]
}
چند عملیات پرکاربرد را که میتوان از آنها در قسمت Action استفاده کرد، در فهرست زیر مشاهده میکنید:
دسترسی مربوط به اشیا
s3:GetObject
s3:PutObject
s3:DeleteObject
دسترسی لیست کردن اشیای سبد
s3:ListBucket
دسترسی به تنظیمات قواعد دسترسی
s3:GetBucketPolicy
s3:PutBucketPolicy
s3:DeleteBucketPolicy
دسترسی به تنظیمات ACL
s3:GetBucketAcl
s3:PutBucketAcl
s3:GetObjectAcl
s3:PutObjectAcl
دسترسی به تنظیمات چرخهی حیات اشیا
s3:GetLifecycleConfiguration
s3:PutLifecycleConfiguration
دسترسی به تنظیمات CORS
s3:GetBucketCORS
s3:PutBucketCORS
برای اطلاعات بیشتر به این آدرس مراجعه کنید.