Topik ini menjelaskan cara membuat kebijakan kustom berdasarkan ReadOnlyAccess policy yang memberikan izin baca-saja pada sumber daya Amazon Web Services (AWS).
Informasi latar belakang
AWS menyediakan ReadOnlyAccess policy yang mengizinkan akses baca-saja ke layanan penyimpanan seperti Amazon Simple Storage Service (Amazon S3). Untuk mengisolasi data bisnis dan mencegah kebocoran data, Anda memerlukan kebijakan yang memberikan izin pada lebih sedikit sumber daya.
Solusi
Anda dapat membuat kebijakan kustom berdasarkan ReadOnlyAccess policy dari AWS dengan menolak izin baca pada layanan basis data atau penyimpanan tertentu.
Kode contoh di lampiran memberikan contoh kebijakan kustom yang menolak izin baca pada layanan berikut:
s3: Amazon S3
dynamodb: Amazon DynamoDB
rds: Amazon Relational Database Service
qldb: Amazon Quantum Ledger Database
cassandra: Amazon Keyspaces (for Apache Cassandra)
codecommitProsedur
Buat tumpukan
1. Masuk ke konsol AWS CloudFormation sebagai administrator atau pengguna tingkat lanjut dan pilih wilayah. Pastikan pengguna atau peran memiliki izin operasi pada AWS Identity and Access Management (IAM).
2. Di halaman Stacks, klik Create stack.
3. Di halaman Create stack, pilih Template is ready di bagian Prerequisite - Prepare template. Di bagian Specify template, pilih Upload a template file, klik Choose file, lalu unggah file seperti file read-only-priciple.cf.yml.
4. Klik Next di pojok kanan bawah. Di halaman Specify stack details, masukkan nama deskriptif di bidang Stack name. Dalam contoh ini, nama tumpukan adalah AliCloudInspector.

5. Gunakan pengaturan default untuk langkah-langkah lainnya. Di halaman terakhir, pilih I acknowledge that AWS CloudFormation might create IAM resources di bagian Capabilities dan klik Create stack.

6. Tunggu hingga tumpukan selesai dibuat.

Dapatkan informasi tumpukan
Di konsol AWS CloudFormation, klik tumpukan AliCloudInspector yang Anda buat di panel Stacks. Di halaman detail, klik tab Outputs. Anda dapat melihat nama pengguna, kata sandi, AccessKey, dan SecretKey dari tumpukan.

Verifikasi informasi tumpukan
Anda dapat melakukan tes sederhana setelah mendapatkan informasi tumpukan dengan menggunakan metode berikut:
Pergi ke konsol
Keluar dari akun pengguna saat ini.
Masuk kembali ke konsol AWS CloudFormation menggunakan nama pengguna dan kata sandi yang Anda peroleh. Setelah masuk ke konsol, kotak dialog Reset Password akan muncul.
Pergi ke CLI
Ganti nilai parameter AWS_ACCESS_KEY_ID dan AWS_SECRET_ACCESS_KEY dalam template variabel lingkungan berikut dengan AccessKey dan SecretKey yang Anda peroleh. Impor kode tersebut ke CLI.
export AWS_ACCESS_KEY_ID=<AK>
export AWS_SECRET_ACCESS_KEY=<SK>
export AWS_DEFAULT_REGION=<Region>Jalankan perintah berikut untuk melakukan tes:
aws s3 ls # Periksa apakah nama semua bucket terdaftar.
aws s3 cp <object> # Periksa apakah akses ke objek ditolak.Lampiran
read-only-user.cf.yaml
---
AWSTemplateFormatVersion: '2010-09-09'
Description: A cloudformation template to create a true read-only user and corresponding AKSK to let AliCloud team be able to access resources but no data.
Resources:
ReadOnlyUser:
Type: AWS::IAM::User
Properties:
ManagedPolicyArns:
- arn:aws:iam::aws:policy/ReadOnlyAccess
LoginProfile:
Password: !Ref AWS::StackId
PasswordResetRequired: true
DenyUnnecessaryPolicies:
Type: AWS::IAM::Policy
Properties:
PolicyName: DenyUnnecessaryPermissionsOfReadOnlyAccess
PolicyDocument:
Statement:
- Effect: Deny
Action:
- s3:GetObject*
- dynamodb:BatchGet*
- dynamodb:Get*
- dynamodb:Query
- dynamodb:Scan
- rds:Download*
- glacier:Get*
- qldb:Get*
- cassandra:Select
- codecommit:BatchGet*
- codecommit:Get*
- codecommit:GitPull
Resource: "*"
Users:
- !Ref ReadOnlyUser
CFNKeys:
Type: AWS::IAM::AccessKey
Properties:
UserName: !Ref ReadOnlyUser
Outputs:
Password:
Value: !Ref AWS::StackId
UserName:
Value: !Ref ReadOnlyUser
Description: Username of new user
AccessKey:
Value:
Ref: CFNKeys
Description: AWSAccessKeyId of new user
SecretKey:
Value:
Fn::GetAtt:
- CFNKeys
- SecretAccessKey
Description: AWSSecretKey of new user