RDS 읽기/쓰기에 대한 AWS 정책

RDS 읽기/쓰기에 대한 AWS 정책

abc-database-backups/rds/postgresql-backup내 시나리오에서는 S3에서 읽기 및 쓰기를 허용하는 정책을 원합니까 ? 우리는 내 서버에 해당 액세스 권한을 추가하기를 원할 것입니다.

역할을 생성하여 서버에 연결하는 것이 가장 좋습니까, 아니면 서버에 키를 추가하는 것이 가장 좋습니까?

나는 이것을 시도했다 :

aws iam create-policy \
     --policy-name rds-s3-integration-policy \
     --policy-document '{
            "Version": "2012-10-17",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": "s3:ListAllMyBuckets",
                    "Resource": "*"
                },
                {
                    "Effect": "Allow",
                    "Action": [
                        "s3:ListBucket",
                        "s3:GetBucketACL",
                        "s3:GetBucketLocation"
                    ],
                    "Resource": "arn:aws:s3:::bucket_name"
                },
                {
                    "Effect": "Allow",
                    "Action": [
                        "s3:GetObject",
                        "s3:PutObject",
                        "s3:ListMultipartUploadParts",
                        "s3:AbortMultipartUpload"
                    ],
                    "Resource": "arn:aws:s3:::bucket_name/key_prefix/*"
                }
            ]
        }' 

이 분야에 대한 나의 경험은 다소 제한되어 있으므로 도움을 주시면 매우 감사하겠습니다.

답변1

사용서비스 연결 역할RDS가 ​​S3 및 필요한 기타 명명된 리소스에 대한 액세스를 제공하도록 합니다. RDS 인스턴스에 이 역할이 있는지 확인하세요. 당신은 또한 읽어야합니다이 문서확장을 사용하여 S3 데이터를 RDS PostgreSQL로 가져오는 방법에 대해 알아보세요.

역할을 설정해야 하는 코드로 일부 CloudFormation 인프라를 조정했습니다. 요구 사항에 맞게 권한과 버킷 이름을 수정하는 것이 좋습니다. 있는 그대로 작동해야 하지만 기존 코드를 수정해야 했기 때문에 100% 작동하지 않으면 편집할 수 있도록 게시물이나 댓글을 편집해 주세요.

AWSTemplateFormatVersion: '2010-09-09'
Description: Role for RDS

Resources:    
    RdsS3IntegrationRole:
        Type: AWS::IAM::Role
        Properties:
            RoleName: RdsS3IntegrationRole
            AssumeRolePolicyDocument:
                Version: 2012-10-17
                Statement:
                    -
                        Effect: Allow
                        Principal:
                            Service:
                                - rds.amazonaws.com
                        Action:
                            - sts:AssumeRole
                
    RDSS3IntegrationPolicy:
        Type: AWS::IAM::Policy
        Properties:
            Roles:
                - !Ref 'RdsS3IntegrationRole'
            PolicyName: RDSS3IntegrationPolicy
            PolicyDocument:
                Statement:
                    - Effect: Allow
                        Action:
                            - s3:GetObject
                            - s3:ListBucket 
                            - s3:PutObject 
                        Resource:
                            - !Sub 'arn:aws:s3:::bucketname/*'
                            - !Sub 'arn:aws:s3:::bucketname'
                    - Effect: Allow
                        Action:
                            - kms:Decrypt
                            - kms:Encrypt
                            - kms:GenerateDataKey
                            - kms:ReEncryptTo
                            - kms:DescribeKey
                            - kms:ReEncryptFrom
                        Resource:
                            - !Sub 'arn:aws:kms:ap-southeast-2:${AWS::AccountId}:key/*'

관련 정보